* Closer on the Mysterious bug
@ 2005-12-12 0:38 Jonathan T Bryant
0 siblings, 0 replies; only message in thread
From: Jonathan T Bryant @ 2005-12-12 0:38 UTC (permalink / raw)
To: caml-list
Everyone,
Now I've fixed the Unix_error(12, "accept, "") bug: I thought passing 0
to select made in wait indefinitely, so I inadvertently created a race
condition. I set it to 0 on all of the calls and that bug disappeared.
Also, I'm catching all of the exceptions and printing out a message
when I do, but they are closing as (or, for that matter, when)
expected. All that's left is the segfault. It still occurs at random
times: sometimes before any connections are established, sometimes
after all the connections have terminated, and sometimes right in the
middle. Sometimes it even freezes for a moment (about 2 sec) before it
crashes. GDB says the segfault is comming from fdset_to_fdlist(),
which leads me to Unix.select. Here's the source of that C function
since not everybody will have the same version of OCaml as me (OCaml
3.08.3):
static value fdset_to_fdlist(value fdlist, fd_set *fdset)
{
value l;
value res = Val_int(0);
Begin_roots2(l, res);
for (l = fdlist; l != Val_int(0); l = Field(l, 1)) {
int fd = Int_val(Field(l, 0));
if (FD_ISSET(fd, fdset)) {
value newres = alloc_small(2, 0);
Field(newres, 0) = Val_int(fd);
Field(newres, 1) = res;
res = newres;
}
}
End_roots();
return res;
}
Any ideas?
BTW, If you need to look at my updated code, it's available at
http://jonboy.isa-geek.com/
--Jonathan
-----------------------
--Jonathan Bryant
jtbryant@valdosta.edu
AIM: JonBoy3182
OAS AAS LLS
ZG214
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2005-12-12 0:39 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-12-12 0:38 Closer on the Mysterious bug Jonathan T Bryant
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).