Hi, Jason.
I don't know how to mark the call unsafe. And I don't know what is a *Nix (perhaps unix?). I am running the main program on Windows.  Here is the compilation script:

ghc -fglasgow-exts serial.c  %1.hs -L./ -ljapi --make
erase *.hi
erase *.o
strip %1.exe

BTW I figure out that passing an argument to closecport only makes the problem occur less often. Here is an example:

D:\ghc\sensors>strip temper.exe
D:\ghc\sensors>temper.exe
4

D:\ghc\sensors>temper.exe
4

D:\ghc\sensors>temper.exe
4

D:\ghc\sensors>temper.exe
4

D:\ghc\sensors>temper.exe
4

D:\ghc\sensors>temper.exe
4

D:\ghc\sensors>temper.exe
4

D:\ghc\sensors>temper.exe
4

D:\ghc\sensors>temper.exe
4

D:\ghc\sensors>temper.exe
4

D:\ghc\sensors>temper.exe
4

D:\ghc\sensors>temper.exe
4

D:\ghc\sensors>temper.exe
4

D:\ghc\sensors>temper.exe
4

D:\ghc\sensors>temper.exe
4

D:\ghc\sensors>temper.exe
4

D:\ghc\sensors>temper.exe
4

D:\ghc\sensors>temper.exe
4

D:\ghc\sensors>temper.exe
4

D:\ghc\sensors>temper.exe
4

D:\ghc\sensors>temper.exe
4

D:\ghc\sensors>temper.exe
4

D:\ghc\sensors>temper.exe
4

D:\ghc\se nsors>temper.exe
4

D:\ghc\sensors>temper.exe
4

D:\ghc\sensors>temper.exe
4

D:\ghc\sensors>temper.exe
4

D:\ghc\sensors>temper.exe
4

D:\ghc\sensors>temper.exe
unable to set comport cfg settings
4


--- On Mon, 11/9/09, Jason Dusek <jason.dusek@gmail.com> wrote:

From: Jason Dusek <jason.dusek@gmail.com>
Subject: Re: [Haskell-cafe] Help Haskell driving Medical Instruments
To: "Philippos Apolinarius" <phi500ac@yahoo.ca>
Cc: "Haskell Cafe" <haskell-cafe@haskell.org>
Received: Monday, November 9, 2009, 11:41 PM

  Does marking the call `unsafe` make any difference?

  This is running on a *NIX of some flavour?

--
Jason Dusek


Be smarter than spam. See how smart SpamGuard is at giving junk email the boot with the All-new Yahoo! Mail