Re Re: Is there a translation from windows events to cygwin signals ?

Lutz Hörl lhoerl@thorlabs.com
Tue Feb 3 16:31:00 GMT 2004



-----Ursprüngliche Nachricht-----
Von: Igor Pechtchanski [mailto:pechtcha@cs.nyu.edu] 
Gesendet: Dienstag, 3. Februar 2004 16:55
An: Lutz Hörl
Cc: cygwin@cygwin.com
Betreff: Re: Is there a translation from windows events to cygwin signals ?


On Tue, 3 Feb 2004, Lutz Hörl wrote:

> Hello,
>
> My problem:
>
> I have to send a signal to a running cygwin application, but I can not 
> use the cygwin API for this purpose.

This doesn't make sense.  You can always do system("c:/cygwin/bin/kill -HUP <cygwin_pid>").

> This signal (e.g. SIGHUP) can be cought by my cywin application, the 
> application can react on it in a proper way.
>
> Until now I found only documentation that states that the cygwin 
> signals rely on windows events but no documentation on how to use this 
> mechanism.
>
> Is there a 'translation' from windows events into signals ? Is there a 
> way to use then Win32 "BroadcastSystemMessage()" function to send a 
> Signal to cygwin application ?
>
> Thank you all
> Lutz Hoerl

Cygwin signals use Windows events under the covers, but there's more to Cygwin signals than just Windows events.  There's no one-to-one mapping. Use "kill".
	Igor
-- 
				http://cs.nyu.edu/~pechtcha/
      |\      _,,,---,,_		pechtcha@cs.nyu.edu
ZZZzz /,`.-'`'    -.  ;-;;,_		igor@watson.ibm.com
     |,4-  ) )-,_. ,\ (  `'-'		Igor Pechtchanski, Ph.D.
    '---''(_/--'  `-'\_) fL	a.k.a JaguaR-R-R-r-r-r-.-.-.  Meow!

"I have since come to realize that being between your mentor and his route to the bathroom is a major career booster."  -- Patrick Naughton

-----------------------------
Thank you Igor!
I know it sounds ugly, but let me go a little more into detail.

I want to do the following:
Start a native Win32 application, let us call it the 'frontend'.
This frontend starts and stops some cygwin applications. Start is no problem, I can do this with
the Win32's CreateProcess() function. Therefrom I get the applications HANDLE. For stopping the
application I want to use this HANDLE but I do not want to use the Win32's TerminateProcess()
function to stop the process because that gives the (cygwin-) applications no time to save anything.
That is the reason why I am looking for a SIGNAL-sending capability from Win32 applications.

When I listen to your answer I can imagine what to do in my Win32 App.:
1. start the cygwin application via CreateProcess(), get a HANDLE
2. obtain the process' Win32-PID from the obtain HANDLE
3. use the cygwin win_pid to cygwin_pid function
4. use the cygwin kill() function with this pid to send a signal to the cygwin application
5. wait for the cygwin application to exit

That means to compile the Win32 application with a DLL that does steps 2 to 5.

Can you confirm that this is the way ?
I would be happy to read about a shorter way.

Thank you again
Lutz Hoerl

Thorlabs GmbH
Gauss-Strasse 11
D-85757 Karlsfeld
Germany

Tel.    +49 (0)8131 5956 44
FAX     +49 (0)8131 5956 99
Mail    lhoerl@thorlabs.com

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/



More information about the Cygwin mailing list