sigset.h 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. #pragma once
  2. // Functions for manipulating signal sets
  3. #include "compat.h"
  4. #if defined _unix_
  5. #include <pthread.h>
  6. #elif defined _win_
  7. // Flags for sigprocmask:
  8. #define SIG_BLOCK 1
  9. #define SIG_UNBLOCK 2
  10. #define SIG_SETMASK 3
  11. using sigset_t = ui32;
  12. #else
  13. #error not supported yet
  14. #endif
  15. inline int SigEmptySet(sigset_t* set) {
  16. #if defined _unix_
  17. return sigemptyset(set);
  18. #else
  19. Y_UNUSED(set);
  20. return 0;
  21. #endif
  22. }
  23. inline int SigFillSet(sigset_t* set) {
  24. #if defined _unix_
  25. return sigfillset(set);
  26. #else
  27. Y_UNUSED(set);
  28. return 0;
  29. #endif
  30. }
  31. inline int SigAddSet(sigset_t* set, int signo) {
  32. #if defined _unix_
  33. return sigaddset(set, signo);
  34. #else
  35. Y_UNUSED(set);
  36. Y_UNUSED(signo);
  37. return 0;
  38. #endif
  39. }
  40. inline int SigDelSet(sigset_t* set, int signo) {
  41. #if defined _unix_
  42. return sigdelset(set, signo);
  43. #else
  44. Y_UNUSED(set);
  45. Y_UNUSED(signo);
  46. return 0;
  47. #endif
  48. }
  49. inline int SigIsMember(const sigset_t* set, int signo) {
  50. #if defined _unix_
  51. return sigismember(const_cast<sigset_t*>(set), signo);
  52. #else
  53. Y_UNUSED(set);
  54. Y_UNUSED(signo);
  55. return 0;
  56. #endif
  57. }
  58. inline int SigProcMask(int how, const sigset_t* set, sigset_t* oset) {
  59. #if defined _unix_
  60. return pthread_sigmask(how, set, oset);
  61. #else
  62. Y_UNUSED(set);
  63. Y_UNUSED(oset);
  64. Y_UNUSED(how);
  65. return 0;
  66. #endif
  67. }