Files
deb-python-eventlet/eventlet/green/thread.py
2008-10-07 18:35:14 +07:00

31 lines
931 B
Python

"""implements standard module 'thread' with greenlets"""
from __future__ import absolute_import
import thread as thread_module
from eventlet.greenlib import greenlet_id as get_ident
from eventlet.support import greenlet
from eventlet.api import spawn
from eventlet.coros import semaphore as LockType
error = thread_module.error
def start_new_thread(function, args=(), kwargs={}):
g = spawn(function, *args, **kwargs)
return get_ident(g) or 0 # XXX 0 only for main greenlet, None for the rest untracked
def allocate_lock():
return LockType(1)
def exit():
raise greenlet.GreenletExit
def stack_size(size=None):
if size is None:
return thread_module.stack_size()
if size > thread_module.stack_size():
return thread_module.stack_size(size)
else:
pass
# not going to decrease stack_size, because otherwise other greenlets in this thread will suffer
# XXX interrupt_main