diff options
author | Christopher Faylor <me@cgf.cx> | 2014-03-17 08:41:35 +0400 |
---|---|---|
committer | Christopher Faylor <me@cgf.cx> | 2014-03-17 08:41:35 +0400 |
commit | 4f0b5a097da2464a8d5120ccc64bf9cf24ddd890 (patch) | |
tree | fb20ca6ab06b28a3f7197d63158bb91efcaaf43f /winsup/cygwin/fhandler.h | |
parent | 600afd99abacfd836b41930c6bc5e014bc5d94e3 (diff) |
* sigproc.h (no_thread_exit_protect): New class.
* sigproc.cc (thread_exit): Use no_thread_exit_protect to determine if we need
to coordinate ThreadExit/ExitProcess.
* fhandler_dsp.cc (fhandler_dev_dsp::Audio_out::stop): Use
no_thread_exit_protect to kludge around waiting for waveOutClose as it waits
for a thread that never exits.
(fhandler_dev_dsp::Audio_in::stop): Ditto for waveInClose.
* fhandler.h (fhandler_dev_dsp::base): New method.
(fhandler_dev_dsp::_read): Ditto.
(fhandler_dev_dsp::_write): Ditto.
(fhandler_dev_dsp::_ioctl): Ditto.
(fhandler_dev_dsp::_fixup_after_fork): Ditto.
(fhandler_dev_dsp::_fixup_after_exec): Ditto.
* fhandler_dsp.cc (fhandler_dev_dsp::read): Call real function via base()
pointer.
(fhandler_dev_dsp::write): Ditto.
(fhandler_dev_dsp::ioctl): Ditto.
(fhandler_dev_dsp::fixup_after_fork): Ditto.
(fhandler_dev_dsp::fixup_after_exec): Ditto.
(fhandler_dev_dsp::_read): Rename by adding an leading underscore.
(fhandler_dev_dsp::_write): Ditto.
(fhandler_dev_dsp::_ioctl): Ditto.
(fhandler_dev_dsp::_fixup_after_fork): Ditto.
(fhandler_dev_dsp::_fixup_after_exec): Ditto.
Diffstat (limited to 'winsup/cygwin/fhandler.h')
-rw-r--r-- | winsup/cygwin/fhandler.h | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/winsup/cygwin/fhandler.h b/winsup/cygwin/fhandler.h index 5e86f003c..663009622 100644 --- a/winsup/cygwin/fhandler.h +++ b/winsup/cygwin/fhandler.h @@ -1790,16 +1790,23 @@ class fhandler_dev_dsp: public fhandler_base Audio_in *audio_in_; public: fhandler_dev_dsp (); + fhandler_dev_dsp *base () const {return (fhandler_dev_dsp *)archetype;} int open (int flags, mode_t mode = 0); ssize_t __stdcall write (const void *ptr, size_t len); void __reg3 read (void *ptr, size_t& len); int ioctl (unsigned int cmd, void *); - off_t lseek (off_t, int) { return 0; } int close (); void fixup_after_fork (HANDLE parent); void fixup_after_exec (); + private: + ssize_t __stdcall _write (const void *ptr, size_t len); + void __reg3 _read (void *ptr, size_t& len); + int _ioctl (unsigned int cmd, void *); + void _fixup_after_fork (HANDLE parent); + void _fixup_after_exec (); + void close_audio_in (); void close_audio_out (bool immediately = false); bool use_archetype () const {return true;} |