[LLVMdev] SlowOperationInformer.cpp:55: error:`SIGALRM'undeclared (first use this functi

Henrik Bach henrik_bach_llvm at hotmail.com
Fri Sep 24 15:07:05 PDT 2004


To be more specific: Lines containing SIGALRM and alarm().

>From: "Henrik Bach" <henrik_bach_llvm at hotmail.com>
>Date: Fri, 24 Sep 2004 23:21:58 +0200
>
>>From: Reid Spencer <reid at x10sys.com>
>>Date: Fri, 24 Sep 2004 13:03:44 -0700
>>
>>I just discovered that the *only* place this is used is in the debugger 
>>when it is loading files, etc. There should be a way to do this without an 
>>alarm. In fact, a thread could easily set the "ShouldShowStatus" every 
>>second until the the thing is cancelled. Since the caller is required to 
>>update the progress, this could also be done with time deltas without the 
>>use of threads or signals. When I get the lib/System/TimeValue abstraction 
>>implemented, I'll probably just update SlowOperationInformer to use 
>>timestamp deltas rather than signals and avoid this whole problem 
>>altogether.
>
>Okay, I'll comment the lines in question for now and see if other gotchas 
>will show up.
>
>>Jeff Cohen wrote:
>>
>>>There's simply no equivalent to signals on Windows.  There is no way to
>>>asynchronously interrupt a thread's processing to execute some handler. 
>>>The only thing you can asynchronously do to a thread is kill it, and
>>>that's generally frowned upon (who knows what critical sections it might
>>>be holding, etc...).
>>>
>>>Stuff like alarms is supposed to be done using the "event-driven" style
>>>of programming, using the Windows message queue, APCs or I/O completion
>>>ports.  You can do what Reid suggests below, but it begs the question of
>>>how one "rings the alarm" in the main thread.  Set a flag that's
>>>periodically checked?  Hmm...  guess that's what this particular signal
>>>handler does anyway :)  Actually, one can dispense with the extra thread
>>>by using waitable timers and periodically checking its state, so long as
>>>you don't plan on supporting Win95 or NT 3.1/3.5.
>>>
>>>It definitely belongs in lib/System.
>>>
>>>On Fri, 24 Sep 2004 12:00:10 -0700
>>>Reid Spencer <reid at x10sys.com> wrote:
>>>
>>>
>>>>Ultimately, this is another function that needs to go into lib/System. 
>>>>An alternate approach is to fork a thread, sleep, and when the thread 
>>>>wakes up, "ring the alarm".
>>>>
>>>>Reid.
>>>>
>>>>John Criswell wrote:
>>>>
>>>>>Henrik Bach wrote:
>>>>>
>>>>>
>>>>>>Hi
>>>>>>
>>>>>>I'm compiling: 
>>>>>>/usr/local/src/llvm/lib/Support/SlowOperationInformer.cpp on MinGW. 
>>>>>>However, it stops complaining about that SIGALRM is undeclared:
>>>>>
>>>>>
>>>>>Is there an alarm() syscall on MinGW?  And if so, what signal does it 
>>>>>send (according to the MinGW docs)?
>>>>>
>>>>>-- John T.
>>>>>
>>>>>
>>>>>>--------------------------
>>>>>>@ /usr/local/build/llvm/mklib --tag=disable-shared --silent --tag=CXX 
>>>>>>--mode=compile g++ -c -I/usr/local/build/llvm/lib/Support 
>>>>>>-I/usr/local/src/llvm/lib/Support -I/usr/local/build/llvm/include 
>>>>>>-I/usr/local/src/llvm/include -I../../include 
>>>>>>-I/usr/local/src/llvm/include -D__MINGW -D_GNU_SOURCE 
>>>>>>-D__STDC_LIMIT_MACROS -Wall -W -Wwrite-strings -Wno-unused -g -D_DEBUG 
>>>>>>/usr/local/src/llvm/lib/Support/SlowOperationInformer.cpp -o 
>>>>>>/usr/local/build/llvm/lib/Support/Debug/SlowOperationInformer.lo
>>>>>>C:/MinGW/msys/local/src/llvm/lib/Support/SlowOperationInformer.cpp: In
>>>>>>  constructor 
>>>>>>`llvm::SlowOperationInformer::SlowOperationInformer(const
>>>>>>  std::string&)':
>>>>>>C:/MinGW/msys/local/src/llvm/lib/Support/SlowOperationInformer.cpp:55: 
>>>>>>error: `
>>>>>>  SIGALRM' undeclared (first use this function)
>>>>>>--------------------------
>>>>>>
>>>>>>On mingw the signal value SIGALRM isn't declared in <signal.h>.
>>>>>>
>>>>>>I can't figure out what to do next. Any suggestions?
>>>>>>
>>>>>>Henrik
>>>>>>
>>>>>>_________________________________________________________________
>>>>>>Opret en gratis Hotmail-konto  http://www.hotmail.com med udsigt til 
>>>>>>250 MB lagerkapacitet
>>>>>>
>>>>>>_______________________________________________
>>>>>>LLVM Developers mailing list
>>>>>>LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
>>>>>>http://mail.cs.uiuc.edu/mailman/listinfo/llvmdev
>>>>>
>>>>>
>>>>>
>>>>_______________________________________________
>>>>LLVM Developers mailing list
>>>>LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
>>>>http://mail.cs.uiuc.edu/mailman/listinfo/llvmdev
>>>
>>>
>>>_______________________________________________
>>>LLVM Developers mailing list
>>>LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
>>>http://mail.cs.uiuc.edu/mailman/listinfo/llvmdev
>>>
>>
>>_______________________________________________
>>LLVM Developers mailing list
>>LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
>>http://mail.cs.uiuc.edu/mailman/listinfo/llvmdev
>
>_________________________________________________________________
>Få alle de nye og sjove ikoner med MSN Messenger http://messenger.msn.dk/
>
>_______________________________________________
>LLVM Developers mailing list
>LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
>http://mail.cs.uiuc.edu/mailman/listinfo/llvmdev

_________________________________________________________________
Undgå pop-ups med MSN Toolbar -  http://toolbar.msn.dk hent den gratis!




More information about the llvm-dev mailing list