Max Lobur
Max Lobur

Reputation: 6040

eventlet.greenthread.sleep VS time.sleep in monkey-patched environment

We're running a server on eventlet green-threads + monkey-patching everything. I need to implement wait loop with periodic check, and I want to put sleep inside.

Is there any difference between :

eventlet.greenthread.sleep(1) AND time.sleep(1) 

in monkey-patched environment? I'm wondering if monkey-patch handles time.sleep

Upvotes: 3

Views: 2127

Answers (1)

dano
dano

Reputation: 94901

They're the same in a monkey-patched environment. eventlet monkey patches time.sleep by default:

No monkey patch:

>>> import time
>>> time.sleep.__module__
'time'

With monkey-patch:

>>> import eventlet
>>> eventlet.monkey_patch()
>>> import time
>>> time.sleep.__module__
'eventlet.greenthread'

The only way it wouldn't be monkey-patch is if the eventlet.monkey_patch call specifies a subset of modules to monkey-patch, leaving out 'time':

>>> import eventlet
>>> eventlet.monkey_patch(socket=True, thread=True)
>>> import time
>>> time.sleep.__module__
'time'

Upvotes: 6

Related Questions