98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
|
98
99
100
101
102
103
104
105
106
107
108
109
110
111
|
-
-
-
-
-
|
*----------------------------------------------------------------------
*/
void
Tcl_AlertNotifier(
ClientData clientData)
{
#ifdef NOTIFIER_EPOLL
#ifdef HAVE_EVENTFD
uint64_t eventFdVal;
#endif /* HAVE_EVENTFD */
#endif /* NOTIFIER_EPOLL */
if (tclNotifierHooks.alertNotifierProc) {
tclNotifierHooks.alertNotifierProc(clientData);
return;
} else {
#ifdef NOTIFIER_SELECT
#ifdef TCL_THREADS
ThreadSpecificData *tsdPtr = clientData;
|
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
|
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
|
-
+
|
pthread_cond_broadcast(&tsdPtr->waitCV);
# endif /* __CYGWIN__ */
pthread_mutex_unlock(¬ifierMutex);
#endif /* TCL_THREADS */
#else
ThreadSpecificData *tsdPtr = clientData;
#if defined(NOTIFIER_EPOLL) && defined(HAVE_EVENTFD)
eventFdVal = 1;
uint64_t eventFdVal = 1;
if (write(tsdPtr->triggerEventFd, &eventFdVal,
sizeof(eventFdVal)) != sizeof(eventFdVal)) {
Tcl_Panic("Tcl_AlertNotifier: unable to write to %p->triggerEventFd",
(void *)tsdPtr);
#else
if (write(tsdPtr->triggerPipe[1], "", 1) != 1) {
Tcl_Panic("Tcl_AlertNotifier: unable to write to %p->triggerPipe",
|