summaryrefslogtreecommitdiffstats
path: root/generic
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2015-09-25 17:12:27 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2015-09-25 17:12:27 (GMT)
commit9bec80c561ec20b18b44df0912dd050d8d1a671d (patch)
tree9f0bd613306a0bccbbe36a242568f134c97c4c33 /generic
parent7fd41e8f9eb1f3aef2595b3dd1b3a51507fa5b8b (diff)
parent1f6b04d51b1c1270bf18e1535567f54c952a3158 (diff)
downloadtcl-9bec80c561ec20b18b44df0912dd050d8d1a671d.zip
tcl-9bec80c561ec20b18b44df0912dd050d8d1a671d.tar.gz
tcl-9bec80c561ec20b18b44df0912dd050d8d1a671d.tar.bz2
merge trunk
Diffstat (limited to 'generic')
-rw-r--r--generic/tclIO.c13
-rw-r--r--generic/tclInt.h3
-rw-r--r--generic/tclThread.c39
3 files changed, 10 insertions, 45 deletions
diff --git a/generic/tclIO.c b/generic/tclIO.c
index 8b01be2..fe28821 100644
--- a/generic/tclIO.c
+++ b/generic/tclIO.c
@@ -5754,6 +5754,7 @@ DoReadChars(
assert( statePtr->inputEncodingFlags & TCL_ENCODING_END );
assert( !GotFlag(statePtr, CHANNEL_BLOCKED|INPUT_SAW_CR) );
+ /* TODO: We don't need this call? */
UpdateInterest(chanPtr);
return 0;
}
@@ -5765,6 +5766,7 @@ DoReadChars(
}
ResetFlag(statePtr, CHANNEL_BLOCKED|CHANNEL_EOF);
statePtr->inputEncodingFlags &= ~TCL_ENCODING_END;
+ /* TODO: We don't need this call? */
UpdateInterest(chanPtr);
return 0;
}
@@ -8285,6 +8287,11 @@ Tcl_NotifyChannel(
*/
if (chanPtr->typePtr != NULL) {
+ /*
+ * TODO: This call may not be needed. If a handler induced a
+ * change in interest, that handler should have made its own
+ * UpdateInterest() call, one would think.
+ */
UpdateInterest(chanPtr);
}
@@ -9663,6 +9670,7 @@ DoRead(
assert( statePtr->inputEncodingFlags & TCL_ENCODING_END );
assert( !GotFlag(statePtr, CHANNEL_BLOCKED|INPUT_SAW_CR) );
+ /* TODO: Don't need this call */
UpdateInterest(chanPtr);
return 0;
}
@@ -9674,6 +9682,7 @@ DoRead(
}
ResetFlag(statePtr, CHANNEL_BLOCKED|CHANNEL_EOF);
statePtr->inputEncodingFlags &= ~TCL_ENCODING_END;
+ /* TODO: Don't need this call */
UpdateInterest(chanPtr);
return 0;
}
@@ -9740,7 +9749,6 @@ DoRead(
*/
if (bytesToRead == 0) {
- UpdateInterest(chanPtr);
break;
}
@@ -9749,7 +9757,6 @@ DoRead(
*/
if (GotFlag(statePtr, CHANNEL_STICKY_EOF)) {
- UpdateInterest(chanPtr);
break;
}
@@ -9774,7 +9781,6 @@ DoRead(
} else if (statePtr->flags & CHANNEL_BLOCKED) {
/* ...and we cannot get more now. */
SetFlag(statePtr, CHANNEL_NEED_MORE_DATA);
- UpdateInterest(chanPtr);
break;
} else {
/* ... so we need to get some. */
@@ -9826,6 +9832,7 @@ DoRead(
|| Tcl_InputBuffered((Tcl_Channel)chanPtr) == 0);
assert( !(GotFlag(statePtr, CHANNEL_EOF|CHANNEL_BLOCKED)
== (CHANNEL_EOF|CHANNEL_BLOCKED)) );
+ UpdateInterest(chanPtr);
TclChannelRelease((Tcl_Channel)chanPtr);
return (int)(p - dst);
}
diff --git a/generic/tclInt.h b/generic/tclInt.h
index fbc4d3f..8716b75 100644
--- a/generic/tclInt.h
+++ b/generic/tclInt.h
@@ -3011,9 +3011,6 @@ MODULE_SCOPE void TclpInitUnlock(void);
MODULE_SCOPE Tcl_Obj * TclpObjListVolumes(void);
MODULE_SCOPE void TclpMasterLock(void);
MODULE_SCOPE void TclpMasterUnlock(void);
-MODULE_SCOPE void TclpMutexLock(void);
-MODULE_SCOPE void TclpMutexUnlock(void);
-MODULE_SCOPE void TclMutexUnlockAndFinalize(Tcl_Mutex *mutex);
MODULE_SCOPE int TclpMatchFiles(Tcl_Interp *interp, char *separators,
Tcl_DString *dirPtr, char *pattern, char *tail);
MODULE_SCOPE int TclpObjNormalizePath(Tcl_Interp *interp,
diff --git a/generic/tclThread.c b/generic/tclThread.c
index 7882a48..198fa6a 100644
--- a/generic/tclThread.c
+++ b/generic/tclThread.c
@@ -284,45 +284,6 @@ Tcl_MutexFinalize(
/*
*----------------------------------------------------------------------
*
- * TclMutexUnlockAndFinalize --
- *
- * This procedure is invoked to unlock and then finalize a mutex.
- * The mutex must have been locked by Tcl_MutexLock. It is also
- * removed from the list of remembered objects. The mutex can no
- * longer be used after calling this procedure.
- *
- * Results:
- * None.
- *
- * Side effects:
- * Remove the mutex from the list.
- *
- *----------------------------------------------------------------------
- */
-
-void
-TclMutexUnlockAndFinalize(
- Tcl_Mutex *mutexPtr)
-{
-#ifdef TCL_THREADS
- Tcl_Mutex mutex;
-#endif
- 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();
-}
-
-/*
- *----------------------------------------------------------------------
- *
* TclRememberCondition
*
* Keep a list of condition variables used during finalization.