mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-02-24 03:02:10 +01:00
Tell select_thread to break out of its loop. Prevents a thread leak.
2004-08-21 Tor Lillqvist <tml@iki.fi> * glib/giowin32.c (g_io_win32_finalize): Tell select_thread to break out of its loop. Prevents a thread leak. (#147392, Peter Zelezny)
This commit is contained in:
parent
c43edd263b
commit
fcabcd6e94
@ -1,5 +1,9 @@
|
|||||||
2004-08-21 Tor Lillqvist <tml@iki.fi>
|
2004-08-21 Tor Lillqvist <tml@iki.fi>
|
||||||
|
|
||||||
|
* glib/giowin32.c (g_io_win32_finalize): Tell select_thread to
|
||||||
|
break out of its loop. Prevents a thread leak. (#147392, Peter
|
||||||
|
Zelezny)
|
||||||
|
|
||||||
* glib/gunicollate.c (g_utf8_collate_key): Guard against bogus
|
* glib/gunicollate.c (g_utf8_collate_key): Guard against bogus
|
||||||
return value from strxfrm(). For instance Microsoft's strxfrm()
|
return value from strxfrm(). For instance Microsoft's strxfrm()
|
||||||
returns INT_MAX on errors. (#141124)
|
returns INT_MAX on errors. (#141124)
|
||||||
|
@ -1,5 +1,9 @@
|
|||||||
2004-08-21 Tor Lillqvist <tml@iki.fi>
|
2004-08-21 Tor Lillqvist <tml@iki.fi>
|
||||||
|
|
||||||
|
* glib/giowin32.c (g_io_win32_finalize): Tell select_thread to
|
||||||
|
break out of its loop. Prevents a thread leak. (#147392, Peter
|
||||||
|
Zelezny)
|
||||||
|
|
||||||
* glib/gunicollate.c (g_utf8_collate_key): Guard against bogus
|
* glib/gunicollate.c (g_utf8_collate_key): Guard against bogus
|
||||||
return value from strxfrm(). For instance Microsoft's strxfrm()
|
return value from strxfrm(). For instance Microsoft's strxfrm()
|
||||||
returns INT_MAX on errors. (#141124)
|
returns INT_MAX on errors. (#141124)
|
||||||
|
@ -1,5 +1,9 @@
|
|||||||
2004-08-21 Tor Lillqvist <tml@iki.fi>
|
2004-08-21 Tor Lillqvist <tml@iki.fi>
|
||||||
|
|
||||||
|
* glib/giowin32.c (g_io_win32_finalize): Tell select_thread to
|
||||||
|
break out of its loop. Prevents a thread leak. (#147392, Peter
|
||||||
|
Zelezny)
|
||||||
|
|
||||||
* glib/gunicollate.c (g_utf8_collate_key): Guard against bogus
|
* glib/gunicollate.c (g_utf8_collate_key): Guard against bogus
|
||||||
return value from strxfrm(). For instance Microsoft's strxfrm()
|
return value from strxfrm(). For instance Microsoft's strxfrm()
|
||||||
returns INT_MAX on errors. (#141124)
|
returns INT_MAX on errors. (#141124)
|
||||||
|
@ -1,5 +1,9 @@
|
|||||||
2004-08-21 Tor Lillqvist <tml@iki.fi>
|
2004-08-21 Tor Lillqvist <tml@iki.fi>
|
||||||
|
|
||||||
|
* glib/giowin32.c (g_io_win32_finalize): Tell select_thread to
|
||||||
|
break out of its loop. Prevents a thread leak. (#147392, Peter
|
||||||
|
Zelezny)
|
||||||
|
|
||||||
* glib/gunicollate.c (g_utf8_collate_key): Guard against bogus
|
* glib/gunicollate.c (g_utf8_collate_key): Guard against bogus
|
||||||
return value from strxfrm(). For instance Microsoft's strxfrm()
|
return value from strxfrm(). For instance Microsoft's strxfrm()
|
||||||
returns INT_MAX on errors. (#141124)
|
returns INT_MAX on errors. (#141124)
|
||||||
|
@ -1,5 +1,9 @@
|
|||||||
2004-08-21 Tor Lillqvist <tml@iki.fi>
|
2004-08-21 Tor Lillqvist <tml@iki.fi>
|
||||||
|
|
||||||
|
* glib/giowin32.c (g_io_win32_finalize): Tell select_thread to
|
||||||
|
break out of its loop. Prevents a thread leak. (#147392, Peter
|
||||||
|
Zelezny)
|
||||||
|
|
||||||
* glib/gunicollate.c (g_utf8_collate_key): Guard against bogus
|
* glib/gunicollate.c (g_utf8_collate_key): Guard against bogus
|
||||||
return value from strxfrm(). For instance Microsoft's strxfrm()
|
return value from strxfrm(). For instance Microsoft's strxfrm()
|
||||||
returns INT_MAX on errors. (#141124)
|
returns INT_MAX on errors. (#141124)
|
||||||
|
@ -728,7 +728,12 @@ g_io_win32_finalize (GSource *source)
|
|||||||
|
|
||||||
SetEvent (channel->data_avail_noticed_event);
|
SetEvent (channel->data_avail_noticed_event);
|
||||||
if (channel->type == G_IO_WIN32_SOCKET)
|
if (channel->type == G_IO_WIN32_SOCKET)
|
||||||
|
{
|
||||||
|
/* Tell select_thread() to exit */
|
||||||
|
channel->needs_close = 1;
|
||||||
|
/* Wake up select_thread() from its blocking select() */
|
||||||
send (channel->reset_send, send_buffer, sizeof (send_buffer), 0);
|
send (channel->reset_send, send_buffer, sizeof (send_buffer), 0);
|
||||||
|
}
|
||||||
|
|
||||||
g_io_channel_unref (watch->channel);
|
g_io_channel_unref (watch->channel);
|
||||||
UNLOCK (channel->mutex);
|
UNLOCK (channel->mutex);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user