summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--generic/tclIORChan.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/generic/tclIORChan.c b/generic/tclIORChan.c
index 8a7a16a..477452b 100644
--- a/generic/tclIORChan.c
+++ b/generic/tclIORChan.c
@@ -932,12 +932,16 @@ TclChanPostEventObjCmd(
if (rcPtr->owner == rcPtr->thread) {
#endif
if (events & TCL_READABLE) {
+ if (rcPtr->readTimer == NULL) {
rcPtr->readTimer = Tcl_CreateTimerHandler(SYNTHETIC_EVENT_TIME,
TimerRunRead, rcPtr);
+ }
}
if (events & TCL_WRITABLE) {
+ if (rcPtr->writeTimer == NULL) {
rcPtr->writeTimer = Tcl_CreateTimerHandler(SYNTHETIC_EVENT_TIME,
TimerRunWrite, rcPtr);
+ }
}
#if TCL_THREADS
} else {
@@ -991,7 +995,7 @@ TimerRunRead(
ClientData clientData)
{
ReflectedChannel *rcPtr = clientData;
- rcPtr->readTimer = 0;
+ rcPtr->readTimer = NULL;
Tcl_NotifyChannel(rcPtr->chan, TCL_READABLE);
}
@@ -1000,7 +1004,7 @@ TimerRunWrite(
ClientData clientData)
{
ReflectedChannel *rcPtr = clientData;
- rcPtr->writeTimer = 0;
+ rcPtr->writeTimer = NULL;
Tcl_NotifyChannel(rcPtr->chan, TCL_WRITABLE);
}