Version française
Home     About     Download     Resources     Contact us    
Browse thread
Ocaml debugger under Windows
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ 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