TIP: Click on subject to list as thread! ANSI
echo: os2prog
to: Arne de Bruijn
from: Peter Fitzsimmons
date: 1996-04-11 17:23:48
subject: Keyboard thread

AdB> To abort a communicationsroutine (ZModem), working 
 AdB> with DosWaitMuxWaitSem, I want to write a thread that 
 AdB> sends a semaphore when the user presses . I can 
 AdB> get it working with a thread looping 
 AdB> KbdCharIn/DosDevIoCtl with KBD$ handle, but I can't 
 AdB> stop it other than killing the thread, and that 


 _beginthread(ZModem, ...);
 do {
      c = getch();
 }while(c != 27);
 DosPostEventSem(hevPleaseStop, ...);

I don't understand why:

  - you are opening $KBD
  - you are using keyboard ioctls
  - you are looping on KbdCharIn (you make it sound like you are using the
    "no wait" option,  which is a no-no).


If,  during the zmodem transfer,  the user is not allowed to interact with
your program (except to press ESC),  there is no reason for the extra
thread.  Instead of checking a semaphore,  you could check the keyboard
instead (kbhit + getch),  after each zmodem block.


--- Maximus/2 3.00
* Origin: Sol 3 * Toronto * V.32 * (905)858-8488 (1:259/414)
SEEN-BY: 50/99 78/0 270/101 620/243 711/401 409 410 413 430 808 809 934 955
SEEN-BY: 712/407 515 517 628 713/888 800/1 7877/2809
@PATH: 259/414 400 99 250/99 3615/50 396/1 270/101 712/515 711/808 809 934

SOURCE: echomail via fidonet.ozzmosis.com

Email questions or comments to sysop@ipingthereforeiam.com
All parts of this website painstakingly hand-crafted in the U.S.A.!
IPTIA BBS/MUD/Terminal/Game Server List, © 2025 IPTIA Consulting™.