Signed-off-by: Takashi Yano <takashi.ya...@nifty.ne.jp> --- winsup/cygwin/fhandler/dsp.cc | 4 ++-- winsup/cygwin/local_includes/fhandler.h | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/winsup/cygwin/fhandler/dsp.cc b/winsup/cygwin/fhandler/dsp.cc index 27f0a50ce..8e51a51c5 100644 --- a/winsup/cygwin/fhandler/dsp.cc +++ b/winsup/cygwin/fhandler/dsp.cc @@ -1060,7 +1060,7 @@ fhandler_dev_dsp::fixup_after_exec () int fhandler_dev_dsp::open (int flags, mode_t) { - int ret = 0, err = 0; + int ret = -1, err = 0; UINT num_in = 0, num_out = 0; set_flags ((flags & ~O_TEXT) | O_BINARY); // Work out initial sample format & frequency, /dev/dsp defaults @@ -1095,7 +1095,7 @@ fhandler_dev_dsp::open (int flags, mode_t) debug_printf ("ACCMODE=%y audio_in=%d audio_out=%d, err=%d, ret=%d", flags & O_ACCMODE, num_in, num_out, err, ret); - if (ret) + if (ret >= 0) being_closed = false; return ret; } diff --git a/winsup/cygwin/local_includes/fhandler.h b/winsup/cygwin/local_includes/fhandler.h index 9af5f716c..098b8dd19 100644 --- a/winsup/cygwin/local_includes/fhandler.h +++ b/winsup/cygwin/local_includes/fhandler.h @@ -2817,6 +2817,8 @@ class fhandler_dev_dsp: public fhandler_base void close_audio_in (); void close_audio_out (bool = false); + + public: bool use_archetype () const {return true;} fhandler_dev_dsp (void *) {} -- 2.39.0