Mantis Bug Tracker

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0003716OCamlOCaml otherlibspublic2005-07-06 07:322013-11-05 16:12
Reporteradministrator 
Assigned To 
PrioritynormalSeverityfeatureReproducibilityalways
StatusacknowledgedResolutionopen 
PlatformOSOS Version
Product Version 
Target VersionFixed in Version 
Summary0003716: Graphics + Threads gives fatal error on Thread.delay
DescriptionFull_Name: Berke Durak
Version: 3.08.3
OS: Debian
Submission from: vol75-1-81-57-79-249.fbx.proxad.net (81.57.79.249)


Hello,

It seems threads and graphics still don't go well together. The following
code:

  let _ =
    Graphics.open_graph " 300x300";
    Thread.delay 2.0;
  ;;

produces

  Fatal error: exception Unix.Unix_error(11, "select", "")

when compiled as byte or native code. It should be noted that reducing the
delay to, say, 0.5 seconds sometimes produces the same error, but sometimes
doesn't.
Here is a strace output:

...
fcntl64(3, F_GETFL) = 0x802 (flags O_RDWR|O_NONBLOCK)
fcntl64(3, F_SETFL, O_RDWR|O_NONBLOCK|O_ASYNC) = 0
getpid() = 24726
fcntl64(3, F_SETOWN, 24726) = 0
select(0, [], [], [], {2, 0}) = ? ERESTARTNOHAND (To be restarted)
--- SIGIO (I/O possible) @ 0 (0) ---
rt_sigprocmask(SIG_BLOCK, [IO], [IO], 8) = 0
ioctl(3, FIONREAD, [288]) = 0
read(3, "\f\0\17\0\1\0\240\3\352\3\10\0\1\0\3\0\10\0>\10\10\032"..., 288) = 288
write(3, "5\30\4\0\3\0\240\3\1\0\240\3\0\4\356\0027\1\4\0\4\0\240"..., 116) =
116
write(3, ">\30\7\0\3\0\240\3\1\0\240\3\2\0\240\3\351\3\v\0\351\3"..., 28) = 28
write(3, ">\30\7\0\3\0\240\3\1\0\240\3\2\0\240\3\344\3\r\0\344\3"..., 28) = 28
write(3, ">\30\7\0\3\0\240\3\1\0\240\3\2\0\240\3\343\3\16\0\343\3"..., 28) = 28
write(3, ">\30\7\0\3\0\240\3\1\0\240\3\2\0\240\3\345\3\17\0\345\3"..., 28) = 28
write(3, ">\30\7\0\3\0\240\3\1\0\240\3\2\0\240\3\342\3\21\0\342\3"..., 28) = 28
write(3, ">\30\7\0\3\0\240\3\1\0\240\3\2\0\240\3\352\3\21\0\352\3"..., 28) = 28
write(3, ">\30\7\0\3\0\240\3\1\0\240\3\2\0\240\3\342\3\22\0\342\3"..., 28) = 28
write(3, ">\30\7\0\3\0\240\3\1\0\240\3\2\0\240\3\351\3\22\0\351\3"..., 28) = 28
ioctl(3, FIONREAD, [32]) = 0
read(3, "\16\0\25\0\1\0\240\3\0\0>\0\352\3\0\0\10\0\0\0\3\0\240"..., 32) = 32
ioctl(3, FIONREAD, [256]) = 0
read(3, "\16\0\26\0\1\0\240\3\0\0>\0\351\3\0\0\v\0\0\0\3\0\240\3"..., 256) =
256
ioctl(3, FIONREAD, [0]) = 0
rt_sigprocmask(SIG_BLOCK, [VTALRM], [IO], 8) = 0
rt_sigprocmask(SIG_SETMASK, [IO], NULL, 8) = 0
sigreturn() = ? (mask now [])
--- SIGIO (I/O possible) @ 0 (0) ---
rt_sigprocmask(SIG_BLOCK, [IO], [IO], 8) = 0
ioctl(3, FIONREAD, [0]) = 0
sigreturn() = ? (mask now [])
write(2, "Fatal error: exception Unix.Unix"..., 57) = 57
exit_group(2) = ?

--
Berke Durak

TagsNo tags attached.
Attached Files

- Relationships

-  Notes
There are no notes attached to this issue.

- Issue History
Date Modified Username Field Change
2005-11-18 10:13 administrator New Issue
2013-11-05 16:12 lpw25 Category OCaml general => OCaml otherlibs
2013-11-05 16:12 lpw25 Description Updated View Revisions


Copyright © 2000 - 2011 MantisBT Group
Powered by Mantis Bugtracker