Lock is just syntactic sugar for doing Monitor.Enter/Monitor.Exit calls on the
object and setting up the try/finally. Here's the IronPython equivalent:
from System.Threading import Monitor
class Locker(object):
def __init__(self, obj):
self.obj = obj
def __enter__(self):
Monitor.Enter(self.obj)
def __exit__(self, exc_type, exc_value, exc_tb):
Monitor.Exit(self.obj)
with Locker(object()):
print 'hello'
(I thought we had considered putting something like this in the clr module at
one point in time so you wouldn't have to define the Locker class but it looks
like that never made it in but it'd be an easy thing to add if someone wanted
to give it a try).
From: [email protected]
[mailto:[email protected]] On Behalf Of Sam Dozor
Sent: Monday, December 13, 2010 9:18 AM
To: Discussion of IronPython
Subject: [IronPython] Thread Locking
Hello All,
I'm trying to use IronPython to lock a thread and have not been able to import
the correct modules. I have IronPython.modules.dll in the same directory as
IronPython.dll, and yet when I try the line "import threading" I get something
like "threading module does not exist".
I'm basically trying to use the lock() keyword from .NET, but if I can use
Python's locking capabilities I'd do that too. Any ideas?
Thanks,
Sam
_______________________________________________
Users mailing list
[email protected]
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com