Mercurial > noffle
comparison src/util.c @ 164:94f2e5607772 noffle
[svn] * src/client.c,src/protocol.c,src/util.h,src/util.c: Common up
repeated signal handler setting code into Utl_installSignalHandler.
* src/client.c: Ensure Client_retrieveArt always exits with the global
lock held. Previously it would be held on error, not held if OK.
| author | bears |
|---|---|
| date | Thu, 25 Jan 2001 11:00:03 +0000 |
| parents | 3c71e28c8eef |
| children | fed1334d766b |
comparison
equal
deleted
inserted
replaced
| 163:3d243292468d | 164:94f2e5607772 |
|---|---|
| 1 /* | 1 /* |
| 2 util.c | 2 util.c |
| 3 | 3 |
| 4 $Id: util.c 183 2000-07-25 12:14:54Z bears $ | 4 $Id: util.c 248 2001-01-25 11:00:03Z bears $ |
| 5 */ | 5 */ |
| 6 | 6 |
| 7 #if HAVE_CONFIG_H | 7 #if HAVE_CONFIG_H |
| 8 #include <config.h> | 8 #include <config.h> |
| 9 #endif | 9 #endif |
| 460 exit( EXIT_FAILURE ); | 460 exit( EXIT_FAILURE ); |
| 461 } | 461 } |
| 462 memcpy( *dst, src, (size_t)len + 1 ); | 462 memcpy( *dst, src, (size_t)len + 1 ); |
| 463 } | 463 } |
| 464 | 464 |
| 465 sig_t | |
| 466 Utl_installSignalHandler( int sig, sig_t handler ) | |
| 467 { | |
| 468 struct sigaction act, oldAct; | |
| 469 | |
| 470 act.sa_handler = handler; | |
| 471 sigemptyset( &act.sa_mask ); | |
| 472 act.sa_flags = 0; | |
| 473 if ( sig != SIGALRM ) | |
| 474 act.sa_flags |= SA_RESTART; | |
| 475 if ( sigaction( sig, &act, &oldAct ) < 0 ) | |
| 476 return SIG_ERR; | |
| 477 return oldAct.sa_handler; | |
| 478 } | |
| 479 | |
| 465 #if defined(UTIL_TEST) | 480 #if defined(UTIL_TEST) |
| 466 | 481 |
| 467 /* Test code borrowed from wildmat.c. Yep, still uses gets(). */ | 482 /* Test code borrowed from wildmat.c. Yep, still uses gets(). */ |
| 468 extern char *gets(); | 483 extern char *gets(); |
| 469 | 484 |
