mirror of
https://github.com/HChaZZY/Stockfish.git
synced 2025-12-19 08:36:33 +08:00
Remove last platform specific code form thread.cpp
A somewhat tricky function pointer cast allows us to move the platform specifics to lock.h, the cast is tricky because return type is not the same of the casted function in Linux (for Windows return type is a DWORD that is a long) but this should not be a problem as long as the size is the same; From: http://stackoverflow.com/questions/188839/function-pointer-cast-to-different-signature "OpenSSL was only casting functions pointers to other function types taking and returning the same number of values of the same exact sizes, and this (assuming you're not dealing with floating-point) happens to be safe across all the platforms and calling conventions I know of. However, anything else is potentially unsafe." No functional change. Signed-off-by: Marco Costalba <mcostalba@gmail.com>
This commit is contained in:
@@ -36,13 +36,7 @@ namespace { extern "C" {
|
||||
// and last thread are special. First one is the main search thread while the
|
||||
// last one mimics a timer, they run in main_loop() and timer_loop().
|
||||
|
||||
#if defined(_WIN32) || defined(_WIN64)
|
||||
DWORD WINAPI start_routine(LPVOID thread) {
|
||||
#else
|
||||
void* start_routine(void* thread) {
|
||||
#endif
|
||||
|
||||
Thread* th = (Thread*)thread;
|
||||
long start_routine(Thread* th) {
|
||||
|
||||
if (th->threadID == 0)
|
||||
th->main_loop();
|
||||
@@ -299,7 +293,7 @@ bool ThreadsManager::available_slave_exists(int master) const {
|
||||
template <bool Fake>
|
||||
Value ThreadsManager::split(Position& pos, Stack* ss, Value alpha, Value beta,
|
||||
Value bestValue, Move* bestMove, Depth depth,
|
||||
Move threatMove, int moveCount, MovePicker *mp, int nodeType) {
|
||||
Move threatMove, int moveCount, MovePicker* mp, int nodeType) {
|
||||
assert(pos.pos_is_ok());
|
||||
assert(bestValue > -VALUE_INFINITE);
|
||||
assert(bestValue <= alpha);
|
||||
|
||||
Reference in New Issue
Block a user