home *** CD-ROM | disk | FTP | other *** search
- #!/usr/bin/env python
- #############################################################################
- # Copyright (C) DSTC Pty Ltd (ACN 052 372 577) 1997, 1998, 1999
- # All Rights Reserved.
- #
- # The software contained on this media is the property of the
- # DSTC Pty Ltd. Use of this software is strictly in accordance
- # with the license agreement in the accompanying LICENSE.DOC file.
- # If your distribution of this software does not contain a
- # LICENSE.DOC file then you have no rights to use this software
- # in any manner and should contact DSTC at the address below
- # to determine an appropriate licensing arrangement.
- #
- # DSTC Pty Ltd
- # Level 7, Gehrmann Labs
- # University of Queensland
- # St Lucia, 4072
- # Australia
- # Tel: +61 7 3365 4310
- # Fax: +61 7 3365 4311
- # Email: enquiries@dstc.edu.au
- #
- # This software is being provided "AS IS" without warranty of
- # any kind. In no event shall DSTC Pty Ltd be liable for
- # damage of any kind arising out of or in connection with
- # the use or performance of this software.
- #
- # Project: Distributed Environment
- # File: $Source: /units/arch/src/Fnorb/orb/RCS/ThreadSpecificData.py,v $
- #
- #############################################################################
- """ A class for thread-specific data. """
-
-
- # Fnorb modules.
- import fnorb_thread
-
-
- class ThreadSpecificData:
- """ A thread-safe dictionary class. """
-
- def __init__(self):
-
- self.__lk = fnorb_thread.allocate_lock()
- self.__data = {}
-
- return
-
- def get(self):
- """ Get the value for the current thread. """
-
- self.__lk.acquire()
- try:
- value = self.__data[fnorb_thread.get_ident()]
-
- finally:
- self.__lk.release()
-
- return value
-
- def set(self, value):
- """ Set the value for the current thread. """
-
- self.__lk.acquire()
- try:
- self.__data[fnorb_thread.get_ident()] = value
-
- finally:
- self.__lk.release()
-
- return
-
- #############################################################################
-