If you really want to use .NET monitors you can code it up as a try/finally:
Monitor.Enter(m_object)
try:
if ...:
...
finally:
Monitor.Exit(m_object)
If you'd like to do a slightly more Pythonic lock you could do:
import threading
x = threading.Lock()
with x:
pass
Or you could combine the two approaches:
from System.Threading import Monitor
class ObjectLocker(object):
def __init__(self, obj):
self.obj = obj
def __enter__(self):
Monitor.Enter(self.obj)
def __exit__(self, *args):
Monitor.Exit(self.obj)
with ObjectLocker(object()):
pass
> -----Original Message-----
> From: [email protected] [mailto:users-
> [email protected]] On Behalf Of Sandy Walsh
> Sent: Monday, January 11, 2010 9:43 AM
> To: [email protected]
> Subject: [IronPython] Converting C# to Python ... the lock() keyword?
>
> Hi,
>
> I'm converting a C# program to IronPython and running into the C# lock()
> command ... what is the equivalent operation in IronPython?
>
> The C# is like:
>
> lock(m_object)
> if (...)
> {
> ...
> }
>
> Thanks!
> -Sandy
_______________________________________________
Users mailing list
[email protected]
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com