Changeset 3535a6e for owl.h


Ignore:
Timestamp:
May 23, 2011, 8:57:46 PM (13 years ago)
Author:
David Benjamin <davidben@mit.edu>
Branches:
master, release-1.10, release-1.8, release-1.9
Children:
257b9c4
Parents:
959cb85
git-author:
David Benjamin <davidben@mit.edu> (02/26/11 00:15:35)
git-committer:
David Benjamin <davidben@mit.edu> (05/23/11 20:57:46)
Message:
First go at sigwait-based signal handling

Instead of relying on pselect and signal masking to listen for signals,
which glib doesn't support, we spawn a dedicated signal thread that
loops in sigwait. These signals are posted back to the main message loop
which may handle them at will. This avoids the need for complex
reentrant code and sig_atomic_t.

This removes the final pre-select action.

SIGINT doesn't quite work right yet because we can no longer take it in
the middle of an event loop iteration.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • owl.h

    r2c79eae r3535a6e  
    592592  gulong typwin_erase_id;
    593593  int rightshift;
    594   volatile sig_atomic_t resizepending;
     594  bool resizepending;
    595595  char *homedir;
    596596  char *confdir;
     
    627627  int haveaim;
    628628  int ignoreaimlogin;
    629   volatile sig_atomic_t got_err_signal; /* 1 if we got an unexpected signal */
    630   volatile siginfo_t err_signal_info;
    631629  owl_zbuddylist zbuddies;
    632630  GList *zaldlist;
     
    638636  owl_timer *aim_nop_timer;
    639637  int load_initial_subs;
    640   volatile sig_atomic_t interrupted;
    641638  FILE *debug_file;
    642639  char *kill_buffer;
Note: See TracChangeset for help on using the changeset viewer.