Browse thread
Ocaml debugger under Windows
[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
| Date: | -- (:) |
| From: | Kuba Ober <ober.14@o...> |
| Subject: | Re: [Caml-list] Ocaml debugger under Windows |
On Tuesday 05 February 2008, Dmitry Bely wrote: > On Feb 5, 2008 12:54 PM, Alain Frisch <alain@frisch.fr> wrote: > > Dmitry Bely wrote: > > > The topic has a long history [1], but since then nothing has actually > > > changed. It's easy to understand: INRIA people are busy and there are > > > probably quite few Ocaml users in the Windows land to worry about. So I > > > decided to do something myself :) (as it was with mingw port several > > > years ago). > > > > > >... > > > > > > If it's interesting for anyone I can publish a patch against Ocaml > > > 3.10.1 > > > > Yes, that's definitely interesting for us! > > > > Is there any hope to build the server with the mingw or msvc port? > > As soon as the following function is rewritten: > > debugger/input_handling.ml > > (* Handle active files until `continue_main_loop' is false. *) > let main_loop () = > let old_state = !continue_main_loop in > try > continue_main_loop := true; > while !continue_main_loop do > try > let (input, _, _) = > select (List.map fst !active_files) [] [] (-1.) > in > List.iter > (function fd -> > let (funct, iochan) = (List.assoc fd !active_files) in > funct iochan) > input > with > Unix_error (EINTR, _, _) -> () > done; > continue_main_loop := old_state > with > x -> > continue_main_loop := old_state; > raise x > > here Unix.select() waits for both network and user input events. There's a windows API function for that. As long as the newtork access can be wrapped in the usual aysnchronous I/O primitives, there's a wait function that will wait on an async conditition *or* a message. Cheers, Kuba