Commit Graph

81 Commits

Author SHA1 Message Date
Nekotekina
c5676e5649 Remove thread_ctrl::atexit
It was only a workaround for poor C++11 thread_local support
2018-09-15 17:09:56 +03:00
Nekotekina
99ffc3fca9 Use std::invoke_result_t
Also simplify idm code
2018-09-08 00:32:04 +03:00
VelocityRa
8981227644 util/thread_ctrl: Method for measuring cycles a thread has run for
Also add a getter for the native thread handle.
2018-05-30 12:35:41 +03:00
kd-11
cbc8bf01a1 cell/scheduler: Manage thread placement depending on cpu hardware 2018-01-19 12:03:57 +03:00
Nekotekina
7d3a528871 Use Qt for error reports 2017-11-23 20:36:21 +03:00
Nekotekina
6561ddae41 PPU LLVM: multithread compilation 2017-06-24 19:12:19 +03:00
kd-11
df7b466656 spu: Speed hacks - Do not starve PPU threads
optionally hint to the OS scheduler to give less attention to SPUs

ui: Add speed 'hacks' as configurable options
2017-05-10 21:50:14 +03:00
Nekotekina
436c245d13 Remove unused code 2017-02-13 18:33:31 +03:00
Nekotekina
a5a2d43d7c Thread.cpp refinement
Hide thread mutex
Safe notify() method
Other refactoring
2017-01-29 19:52:19 +03:00
Nekotekina
0f87c4485d Silly macro removed-2 2016-08-14 18:19:42 +03:00
Nekotekina
f8719c1230 PPUThread refactoring
`CallbackManager` removed, added _gcm_intr_thread for cellGcmSys
`PPUThread` renamed to `ppu_thread`, inheritance allowed
Added lightweight command queue for `ppu_thread`
Implemented call stack dump for PPU
`get_current_thread_mutex` removed
`thread_ctrl::spawn`: minor initialization fix
`thread_ctrl::wait_for` added
`named_thread`: some methods added
`cpu_thread::run` added
Some bugs fixes, including SPU channels
2016-07-30 16:35:02 +03:00
Nekotekina
a026d35c97 sys_interrupt_thread_eoi fixed
thread_ctrl::interrupt improved
BIND_FUNC improved: preparations
2016-07-24 21:06:07 +03:00
Nekotekina
7ccdea7822 Removed std::enable_shared_from_this
Minor ID manager refactoring
2016-07-24 21:06:05 +03:00
Nekotekina
59433bfcd5 Implemented thread_ctrl::interrupt 2016-07-17 02:23:45 +03:00
Nekotekina
266db1336d The rest 2016-05-23 16:22:25 +03:00
Ivan
da7472fe81 Optimizations (#1680)
* Optimizations

1) Some headers simplified for better compilation time
2) Some templates simplified for smaller executable size
3) Eliminate std::future to fix compilation for mingw64
4) PKG installation can be cancelled now
5) cellGame fixes
6) XAudio2 fix for mingw64
7) PPUInterpreter bug fixed (Clang)

* any_pod<> implemented

Aliases: any16, any32, any64
rsx::make_command fixed
2016-04-25 13:49:12 +03:00
Nekotekina
250ce63527 Partial commit: Utilities 2016-04-15 19:22:20 +03:00
Nekotekina
a666318b95 Error messages improved 2015-12-20 15:41:09 +03:00
Nekotekina
ca6783ba9a Threads improved, ID manager improved 2015-12-04 23:37:34 +03:00
Nekotekina
a974ee009e vm::var improved, cleanup
Mostly vm::var initialization introduced.
Added vm::make_var function.
2015-10-14 18:17:37 +03:00
Nekotekina
8ae3401ffa Some things improved
shared_mutex_t implemented
GUI Emu Callbacks rewritten
fxm::import, fxm::import_always implemented
cellMsgDialog rewritten
Emu.CallAfter improved (returns std::future)
2015-09-22 16:48:21 +03:00
Nekotekina
e551e2bc5d Bugfix 2015-08-24 21:22:49 +03:00
Nekotekina
5e14310071 noexcept usage fixed
thread_t renamed to named_thread_t
2015-08-24 21:22:48 +03:00
Nekotekina
d9403c2ed2 thread_t cleanup 2015-08-24 21:22:37 +03:00
Danila Malyutin
009370f73c Fix some compiling problems on OSX
and enable osx builds on travis
2015-08-24 00:20:01 +03:00
Nekotekina
8175630619 sys_cond/sys_mutex improved 2015-07-21 23:14:29 +03:00
Nekotekina
a7668ff57f SPU_EVENT_LR improved 2015-07-21 23:14:22 +03:00
Nekotekina
1e021cdbba waiter_map reintroduced, combined with vm 2015-07-21 23:14:20 +03:00
Nekotekina
82781e620a Small fixes 2015-07-10 04:31:36 +03:00
Nekotekina
c0f13f7084 sleep_queue_t rewritten, used in sys_cond/sys_mutex
Some synchronization fixes
2015-07-10 04:31:34 +03:00
Nekotekina
eafddd9e33 CPUThread fixes, thread_t cleanup 2015-07-10 04:31:32 +03:00
Nekotekina
3064cf8101 CHECK_EMU_STATUS, autojoin_thread_t 2015-07-10 04:31:27 +03:00
Nekotekina
6f1e76198a Some fixes 2015-07-10 04:31:18 +03:00
Nekotekina
3aefa2b4e1 ThreadBase rewritten (wip) 2015-07-10 04:31:16 +03:00
Nekotekina
c598fe7aa9 atomic_op() rewritten, atomic.h refactoring
cellSync refactoring, wait_op() rewritten, bugfixes
2015-07-10 04:31:10 +03:00
Nekotekina
78fdcf75e7 Attribute macro changed
__forceinline -> force_inline
__noinline -> never_inline
printf_alike(x,y) added
2015-05-28 18:14:22 +03:00
Nekotekina
22b78fec71 IdManager improved, atomic_t improved
Various changes
2015-05-27 06:11:59 +03:00
Nekotekina
c5737d01c6 Logging fixed
Now it displays messagebox if logging system isn't initialized.
Otherwise it could cause stack overflow.
2015-04-25 16:29:05 +03:00
Nekotekina
c88e0a0eb9 Small cleanup 2015-03-13 04:09:53 +03:00
Nekotekina
5764ee7a2a Small fix 2015-03-13 02:03:22 +03:00
Nekotekina
4a6ef91eb3 More cleanup 2015-03-07 19:03:42 +03:00
Nekotekina
5f8cf18a5a SPU refactoring 2015-03-03 00:09:20 +03:00
Nekotekina
af986d8f4c Loader improved, ModuleManager refactored 2015-02-18 19:22:06 +03:00
Nekotekina
b897a5d20a cellAudio, thread_t improvements, pause/resume callback 2015-01-17 19:14:58 +03:00
Nekotekina
4dae27c1d4 squeue_t updated 2015-01-16 20:09:53 +03:00
Nekotekina
fd06f70387 cellAudio updated, thread_t updated 2015-01-16 17:36:53 +03:00
Nekotekina
f3cd908d5c Sync primitives reworked
(rwlock rewritten)
2015-01-02 02:41:29 +03:00
Nekotekina
653db28675 removed excessive stuff 2014-12-28 16:15:22 +03:00
Nekotekina
1491dcdc92 squeue_t fix 2 2014-12-26 01:58:43 +03:00
Nekotekina
bdbbde4d36 squeue_t fixed 2014-12-26 01:49:55 +03:00