2015-12-01

OpenMSX Git (2015/12/01)

EmuCR:OpenMSX OpenMSX Git (2015/12/01) is complie. OpenMSX is an open source MSX emulator which is free according to the Debian Free Software Guidelines, available under the GNU General Public License.For copyright reasons the emulator cannot be distributed with original BIOS ROM images. OpenMSX includes C-BIOS a minimal implementation of the MSX BIOS, allowing to play quite some games without the need to have an original MSX BIOS ROM image. You can also use your own BIOS ROM image if you please.

OpenMSX Git Changelog:
* Assert false when an internal error happens.
* Cleanups of CliServer
Replace volatile by atomic_bool, as volatile does not have guarantees
against instruction reordering.
Suppress warning about return value of write() not being used.
Thanks to Wouter for reviewing my earlier CliServer patches.
* Properly fix controlled shutdown of accept thread
We now use poll() on an internal pipe to wake up the accept thread so
it can check the exit flag.
* Improve exitLoop handling
Mark exitLoop as 'volatile' to make it explicit that we're sharing
it between threads and to prevent the compiler from reordering the
statements that accesses it.
Check exitLoop's value immediately after accept(), to decrease the
chance of crashing if clean shutdown of the accept thread by the
destructor failed.
Made exitLoop static, so it is not an error when accessing it after
the CliServer object was destructed. Note that sock_startup() and
sock_cleanup() are not refcounted, so we can only deal with one
CliServer instance at any time anyway.
Note that there is still a race condition when CliServer is destructed
just after the accept thread checks exitLoop.
* Improve CliServer's destructor
Do not join the accept thread if it was never started or if waking it
failed. While it is risky to continue destruction with the thread
still having a reference to the CliServer object, waiting for the
thread to exit would hang openMSX, which is certainly bad.
Do not call Thread::stop(), since that method will be going away. Also
there is no telling what it will do if the thread is inside accept().
* Make error messages in CliServer::createSocket() more specific
* Make CliServer::createSocket() return the socket
This way, the listenSocket member is only written if createSocket()
was successful, which avoids exitAcceptLoop() waiting for the accept
thread to exit when the accept thread was never started in the first
place.
* Make auto_enable_reverse work with enable_session_management
Although I don't fully understand why, Manuel's suggestion does fix
the problem.

Download: OpenMSX Git (2015/12/01) x86
Download: OpenMSX Git (2015/12/01) x64
Source: Here

0 Comments

Post a Comment