pcsx2/plugins
Jonathan Li ac78688a32 gsdx: Make GSJobQueue non-inheritable
In the previous code, the threads were created and destroyed in the base
class constructor and destructor, so the threads could potentially be
active while the object is in a partially constructed or destroyed state.
The thread however, relies on a virtual function to process the queue
items, and the vtable might not be in the desired state when the object
is partially constructed or destroyed.

This probably only matters during object destruction - no items are in
the queue during object construction so the virtual function won't be
called, but items may still be queued up when the destructor is called,
so the virtual function can be called. It wasn't an issue because all
uses of the thread explicitly waited for the queues to be empty before
invoking the destructor.

Adjust the constructor to take a std::function parameter, which the
thread will use instead to process queue items, and avoid inheriting
from the GSJobQueue class. This will also eliminate the need to
explicitly wait for all jobs to finish (unless there are other external
factors, of course), which would probably make future code safer.
2016-12-08 01:18:17 +00:00
..
CDVDiso reformat CDVDiso 2016-09-08 21:54:50 +02:00
CDVDisoEFP Clean up the type defines in pcsx2. 2014-08-25 16:16:34 +10:00
CDVDlinuz Use global compiler optimization flags instead of defining them for every plugin/binary 2015-08-08 16:25:17 +03:00
CDVDnull reformat null plugin with pointer symbol on the right 2016-09-08 21:52:49 +02:00
CDVDolio windows: Remove user.props references from all projects 2016-05-29 12:21:52 +01:00
CDVDpeops Introduce end-of-line normalization 2015-08-04 23:52:48 +02:00
FWnull clang format: set SpacesBeforeTrailingComments to 1 2016-10-16 21:42:31 +02:00
GSdx gsdx: Make GSJobQueue non-inheritable 2016-12-08 01:18:17 +00:00
GSdx_legacy windows: Don't use __declspec(dllexport) for plugin exports 2016-06-05 22:57:42 +01:00
GSnull clang format: set SpacesBeforeTrailingComments to 1 2016-10-16 21:42:31 +02:00
LilyPad fix2 2016-11-14 13:55:55 +01:00
PadNull reformat null plugin with pointer symbol on the right 2016-09-08 21:52:49 +02:00
PeopsSPU2 Introduce end-of-line normalization 2015-08-04 23:52:48 +02:00
SPU2null spu2: improve format consistency 2016-10-22 13:22:28 +02:00
SSSPSXPAD windows: Remove user.props references from all projects 2016-05-29 12:21:52 +01:00
USBnull clang format: set SpacesBeforeTrailingComments to 1 2016-10-16 21:42:31 +02:00
USBqemu plugins: Tidy/standardise VS projects 2016-07-19 23:25:12 +01:00
cdvdGigaherz/src cdvdgigaherz:linux: Swap Ok and Cancel button order 2016-12-07 01:40:44 +00:00
dev9ghzdrk Fix warning in dev9ghz 2016-07-23 15:58:37 +02:00
dev9null clang format: set SpacesBeforeTrailingComments to 1 2016-10-16 21:42:31 +02:00
onepad onepad gui: always assume rumble is supported on the GUI 2016-11-08 21:23:56 +01:00
spu2-x Fixed effects area wrapping calculation, which was always buggy but this 2016-11-01 11:12:41 +00:00
xpad plugins: Tidy/standardise VS projects 2016-07-19 23:25:12 +01:00
zerogs windows: Remove user.props references from all projects 2016-05-29 12:21:52 +01:00
zerospu2 windows: Remove unneeded library dependencies 2016-06-04 22:55:48 +01:00
zzogl-pg/opengl glsl2h: add input files in the header 2016-08-28 16:31:35 +02:00
CMakeLists.txt cmake: Add cdvdgigaherz and dependencies 2016-11-07 00:08:23 +00:00