Exemple #1
0
void
Tcl_MutexFinalize(
    Tcl_Mutex *mutexPtr)
{
#ifdef TCL_THREADS
    TclpFinalizeMutex(mutexPtr);
#endif
    TclpMasterLock();
    ForgetSyncObject((char *) mutexPtr, &mutexRecord);
    TclpMasterUnlock();
}
Exemple #2
0
void
Tcl_ConditionFinalize(
    Tcl_Condition *condPtr)
{
#ifdef TCL_THREADS
    TclpFinalizeCondition(condPtr);
#endif
    TclpMasterLock();
    ForgetSyncObject((char *) condPtr, &condRecord);
    TclpMasterUnlock();
}
Exemple #3
0
void
TclMutexUnlockAndFinalize(
    Tcl_Mutex *mutexPtr)
{
    Tcl_Mutex mutex;
    TclpMasterLock();
    TclpMutexLock();
#ifdef TCL_THREADS
    mutex = *mutexPtr;
    *mutexPtr = NULL; /* Force it to be created again. */
    Tcl_MutexUnlock(&mutex);
    TclpFinalizeMutex(&mutex);
#endif
    ForgetSyncObject(mutexPtr, &mutexRecord);
    TclpMutexUnlock();
    TclpMasterUnlock();
}