On 10-12-10 11:09, Mike Dewhirst wrote:
> On 10/12/2010 7:43pm, martvefun wrote:
>> On 09-12-10 01:37, Mike Dewhirst wrote:
>>> It seems like a good place to put it. Maybe you can test to see if the
>>> threads have been started already?
>>>
>>> Here is a singleton which could live in your __init__.py and might
>>> help to record the state of your threading ... or anything else for
>>> that matter.
>>>
>>> class singleton(object):
>>>      """ designed by Oren Tirosh and Jeff Pitman """
>>>      def __new__(self, *args, **kwargs):
>>>          if not '_singleton' in self.__dict__:
>>>              slate = object.__new__(self)
>>>              slate.state = {
>>>                  'threads':True,
>>>                  # add other state things as required
>>>              }
>>>              self._singleton = slate
>>>          return self._singleton
>>>
>>> hth
>>>
>>> Mike
>>>
>> Sorry but I don't really understand how works the function you gave me.
>
> A singleton is a class which guarantees to return exactly the same
> object every time. It can only create an object once then returns a
> handle to the existing object instead of creating a new one.
>
> If you initiate your threads and set (in the above example)
> slate.state['threads'] = True I think you can rely on that and avoid
> initiating them twice.
>
> I used it once to manage the state of a "switch" where different parts
> of the project could instantiate a singleton object and read the
> state, make decisions and update the state reliably for other part of
> the app.
>
> Mike
>

Thank you, it works if I have to call in the same files (like s1 =
singleton() ; s2 = singleton() ) but here I still have two calls

class singleton(object):
     """ designed by Oren Tirosh and Jeff Pitman """
     def __new__(self, *args, **kwargs):
         print "call singleton"
         if not '_singleton' in self.__dict__:
            print "first time created"
            slate = object.__new__(self)
            slate.state = {
                'threads':True,
                # add other state things as required
            }
            self._singleton = slate
         return self._singleton

singleton()
print "Server is now runing"

gives me :
$ python manage.py runserver
call singleton
first time created
Server is now runing
call singleton
first time created
Server is now runing
Validating models...
0 errors found

And anyway I just realised another problem : I'll need to have access to
the objects I created from views.
The idea is to send a message to the thread when a certain action is
done (like user registration, validate choices...) but to do that I need
an access to this object (I cannot create another one because of
concurrency safety)

Any idea ?

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-us...@googlegroups.com.
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en.

Reply via email to