~vcs-imports/libgnet/main

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
GNet BUGS
=========

See our Bugzilla page for the last bugs:
  <http://bugzilla.gnome.org/buglist.cgi?product=gnet>

* gnet_tcp_socket_new_async can block when SOCKS is used

The function will block during the SOCKS negotiation after the
connection to the SOCKS server has been made.  This shouldn't be too
serious, so it hasn't been fixed.


* Process uses 100% CPU  [GLib bug 11059]

On some systems GLib has problems if you use more than one watch on a
file descriptor.  The problem is GLib assumes descriptors can appear
twice in the array passed to poll(), which is true on some systems but
not others (e.g. newer versions of Linux).  If GLib passes an array
that's larger than than number of open decriptors, poll fails.  This
causes GLib to immediately try again, fail, try again, and so on,
looping.  (Newer versions of GLib may warn when this happens.)

One solution is to not set more than one watch per iochannel.  In many
situations this is difficult to do.  In newer versions of Jungle
Monkey, there is a single demultiplexer function that acts as the only
watch and calls the appropriate IO handler.  A simpler alternative is
to replace the limited poll with an unlimited poll.  This requires
distributing an additional file and some autoconf magic.  See Jungle
Monkey 0.1.10 for an example of how to do this.

See GLib bug 11059 on http://bugs.gnome.org.  (The original bug report
is incorrect - the problem is with GLib, not Linux.)