blob: 017e9b6af79638190ce446f94a487a42e4ef700e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
#include "engine/threads.h"
#include <stdio.h>
void *engine_thread(void *_args) {
struct thread_args *args = (struct thread_args*)_args;
args->stop = 0;
int depth = 0;
engine_message_t *message = args->message->newest_valid;
while (true) {
message->depth = depth++;
message->multipv = args->id;
ipc_moves_init(&message->pv);
// pseudo engine work
for (volatile int k = 0; k < 1000000000; k++) {}
add_ipc_move(&message->pv, (ipc_move_t) { 14, 24 });
if (args->stop || !should_continue(message, args->go_args)) {
message->best_move = (ipc_move_t) { 12, 24 };
message->ponder = (ipc_move_t) { 42, 54 };
message->next = NULL;
engine_message_mark_ready(message);
break;
}
engine_message_mark_ready(message);
message = engine_message_handler_push(args->message);
}
args->stop = 2;
}
|