Mantis Bug Tracker

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0003963OCamlOCaml generalpublic2006-01-26 00:542013-06-03 21:00
Reporteranonymous 
Assigned To 
PrioritynormalSeveritymajorReproducibilityalways
StatusclosedResolutionfixed 
PlatformOSOS Version
Product Version3.09.0 
Target Version4.01.0+devFixed in Version4.01.0+dev 
Summary0003963: Graphics.wait_next_event in Win32 hangs if window closed.
DescriptionCall Graphics.open_graph "" to open the graphics window.
Call Graphics.wait_next_event.
Close the window by clicking on the close box with the mouse.

wait_next_event will never return, and the caller has no
way of knowing that the window has gone away.

I looked through the source code in ocaml-3.09.1/otherlibs/win32graph.
In open.c/GraphicsWndProc(), when a WM_DESTROY message arrives, the
message is passed to caml_gr_handle_event() as usual. But
caml_gr_handle_event() is not sensitive to a WM_DESTROY message.
So the waiting call from Graphics.wait_next_event continues
to wait forever.

TagsNo tags attached.
Attached Files

- Relationships

-  Notes
(0009384)
doligez (administrator)
2013-06-03 21:00

Since Graphics.wait_next_event does not have a return value for this case, I've fixed this by making it raise Graphic_failure as it does under X-window, although the message is not the same.

Fixed in trunk/4.01 (rev 13740).

- Issue History
Date Modified Username Field Change
2006-01-26 00:54 anonymous New Issue
2006-03-29 16:31 doligez Status new => acknowledged
2012-07-06 16:41 doligez Target Version => 4.01.0+dev
2012-07-31 13:37 doligez Target Version 4.01.0+dev => 4.00.1+dev
2012-09-07 12:54 frisch Target Version 4.00.1+dev => 4.00.2+dev
2013-06-03 21:00 doligez Note Added: 0009384
2013-06-03 21:00 doligez Fixed in Version => 4.01.0+dev
2013-06-03 21:00 doligez Target Version 4.00.2+dev => 4.01.0+dev
2013-06-03 21:00 doligez Status acknowledged => closed
2013-06-03 21:00 doligez Resolution open => fixed


Copyright © 2000 - 2011 MantisBT Group
Powered by Mantis Bugtracker