OpenMSX Git (2016/11/07) 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:
* Fixed exit of stdio connection on Windows
Although we can't call Poller::poll() on Windows, we should still check
whether Poller::abort() was called or not.
Note that on Windows, an extra line of input is required to make the
worker thread exit. This is not ideal, but since earlier experiments
with stdio on Windows showed that it was not usable for controlling
openMSX from other processes, this is only a problem when using stdio
manually, which is a rare use case.
* Use Poller to cleanly exit in SocketConnection
The main change is that closing and invalidating the socket was split
off from the close() method, such that the worker thread can safely
call it.
* Rename SocketConnection::mutex to sdMutex
Be explicit about what the mutex protects.
* Use Poller to cleanly exit in StdioConnection
I removed the check that suppresses stdout output when the listen loop
is exited, since I can't see why what would be necessary.
Note that calling close() from run() was a bug: the worker thread would
be waiting for itself to exit.
* [7/7] Remove Thread wrapper class
The previous patches removed all uses of the Thread class. So now we can also
remove that class itself.
Actually the static member functions setMainThread() and isMainThread() remain.
I've moved those to a namespace now instead of in a class.
* [6/7] Directly use std::thread in CliConnection
There's still a problem with thread termination in CliConnection, more
specifically the stdio and socket versions. Before this patch, when using such
a connection and exiting openMSX you got a crash: actually std::terminate() was
called because the helper thread was not properly shut down. Now we do join()
the helper thread, but it doesn't properly stop yet (e.g. for stdio it only
stops when the next data is read from stdin).
This issue needs to be addressed, but that's something for another patch.
* [5/7] Directly use std::thread in CliServer
* [4/7] Directly use std::thread in PreCacheFile
* [3/7] Directly use std::thread in MidiInWindows
I couldn't compile/test this. But it's very similar to the 2 previous patches,
so I hope it's ok.
* [2/7] Directly use std::thread in MidiInReader
* [1/7] Directly use std::thread in RS232Tester
Directly use the std::thread class instead of our (now very thin) wrapper class
around it.
* Fix link error on linux related to pthread
When std::thread is used, at least on linux, you should pass '-pthread' both as
a compiler and a linker option. This patch adds that, and it works for me now,
but I'm not sure I've added it in the correct location.
Maarten: please review/fix.
* Remove indirection from our Thread wrapper class
std::thread itself can also be used to store a non-running thread.
I wonder if our wrapper class Thread around std::thread is still useful. Maybe
it's easier to just directly use std::thread?
Download: OpenMSX Git (2016/11/07) x86
Download: OpenMSX Git (2016/11/07) x64
Source: Here
0 Comments
Post a Comment