GRAYBYTE WORDPRESS FILE MANAGER6093

Server IP : 198.54.121.189 / Your IP : 216.73.216.140
System : Linux premium69.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64
PHP Version : 7.4.33
Disable Function : NONE
cURL : ON | WGET : ON | Sudo : OFF | Pkexec : OFF
Directory : /opt/hc_python/lib/python3.12/site-packages/greenlet/tests/
Upload Files :
Current_dir [ Not Writeable ] Document_root [ Writeable ]

Command :


Current File : /opt/hc_python/lib/python3.12/site-packages/greenlet/tests//fail_clearing_run_switches.py
# -*- coding: utf-8 -*-
"""
If we have a run callable passed to the constructor or set as an
attribute, but we don't actually use that (because ``__getattribute__``
or the like interferes), then when we clear callable before beginning
to run, there's an opportunity for Python code to run.

"""
import greenlet

g = None
main = greenlet.getcurrent()

results = []

class RunCallable:

    def __del__(self):
        results.append(('RunCallable', '__del__'))
        main.switch('from RunCallable')


class G(greenlet.greenlet):

    def __getattribute__(self, name):
        if name == 'run':
            results.append(('G.__getattribute__', 'run'))
            return run_func
        return object.__getattribute__(self, name)


def run_func():
    results.append(('run_func', 'enter'))


g = G(RunCallable())
# Try to start G. It will get to the point where it deletes
# its run callable C++ variable in inner_bootstrap. That triggers
# the __del__ method, which switches back to main before g
# actually even starts running.
x = g.switch()
results.append(('main: g.switch()', x))
# In the C++ code, this results in g->g_switch() appearing to return, even though
# it has yet to run.
print('In main with', x, flush=True)
g.switch()
print('RESULTS', results)

[ Back ]
Name
Size
Last Modified
Owner / Group
Permissions
Options
..
--
May 23 2025 08:31:29
root / root
0755
__pycache__
--
May 23 2025 08:31:29
root / root
0755
__init__.py
9.142 KB
May 23 2025 08:31:29
root / root
0644
_test_extension.c
5.638 KB
May 23 2025 08:31:29
root / root
0644
_test_extension.cpython-312-x86_64-linux-gnu.so
16.852 KB
May 23 2025 08:31:29
root / root
0755
_test_extension_cpp.cpp
6.411 KB
May 23 2025 08:31:29
root / root
0644
_test_extension_cpp.cpython-312-x86_64-linux-gnu.so
57.016 KB
May 23 2025 08:31:29
root / root
0755
fail_clearing_run_switches.py
1.233 KB
May 23 2025 08:31:29
root / root
0644
fail_cpp_exception.py
0.962 KB
May 23 2025 08:31:29
root / root
0644
fail_initialstub_already_started.py
1.915 KB
May 23 2025 08:31:29
root / root
0644
fail_slp_switch.py
0.512 KB
May 23 2025 08:31:29
root / root
0644
fail_switch_three_greenlets.py
0.934 KB
May 23 2025 08:31:29
root / root
0644
fail_switch_three_greenlets2.py
1.255 KB
May 23 2025 08:31:29
root / root
0644
fail_switch_two_greenlets.py
0.798 KB
May 23 2025 08:31:29
root / root
0644
leakcheck.py
11.684 KB
May 23 2025 08:31:29
root / root
0644
test_contextvars.py
10.294 KB
May 23 2025 08:31:29
root / root
0644
test_cpp.py
2.672 KB
May 23 2025 08:31:29
root / root
0644
test_extension_interface.py
3.739 KB
May 23 2025 08:31:29
root / root
0644
test_gc.py
2.854 KB
May 23 2025 08:31:29
root / root
0644
test_generator.py
1.211 KB
May 23 2025 08:31:29
root / root
0644
test_generator_nested.py
3.631 KB
May 23 2025 08:31:29
root / root
0644
test_greenlet.py
45.167 KB
May 23 2025 08:31:29
root / root
0644
test_greenlet_trash.py
7.761 KB
May 23 2025 08:31:29
root / root
0644
test_leaks.py
17.299 KB
May 23 2025 08:31:29
root / root
0644
test_stack_saved.py
0.436 KB
May 23 2025 08:31:29
root / root
0644
test_throw.py
3.625 KB
May 23 2025 08:31:29
root / root
0644
test_tracing.py
8.057 KB
May 23 2025 08:31:29
root / root
0644
test_version.py
1.308 KB
May 23 2025 08:31:29
root / root
0644
test_weakref.py
0.862 KB
May 23 2025 08:31:29
root / root
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2025
CONTACT ME
Static GIF