-----Ursprüngliche Nachricht-----
Von: Igor Pechtchanski [mailto:[EMAIL PROTECTED] 
Gesendet: Dienstag, 3. Februar 2004 16:55
An: Lutz Hörl
Cc: [EMAIL PROTECTED]
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/
      |\      _,,,---,,_                [EMAIL PROTECTED]
ZZZzz /,`.-'`'    -.  ;-;;,_            [EMAIL PROTECTED]
     |,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    [EMAIL PROTECTED]

--
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/

Reply via email to