problème avec la macro PTHREAD_MUTEX_INITIALIZER
Bonjour à tous,
Je souhaiterais exécuter sous linux un programme en C écrit par un pote sous windows. Ce programme fonctionne parfaitement sous windows.
J'ai un souci avec la macro PTHREAD_MUTEX_INITIALIZER : le compilateur met qu'une expression est attendu avant un {, mais il n'y a pas de { dans le code à ces lignes...
Code:
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
| bool sds_initialize(u16 local_port, u16 switch_port, const char *switch_name, u16 *_signals, u16 _nb_signals, u16 **_signals_ranges, u16 _nb_signals_ranges) {
watchdog_monitoring = true;
multithreaded_signal_processing = true;
signal_callback_function = do_nothing;
*restart_command = '\0';
restart_command_mutex = PTHREAD_MUTEX_INITIALIZER; //ligne 116
last_switch_signal_mutex = PTHREAD_MUTEX_INITIALIZER; //ligne 117
is_disposed_mutex = PTHREAD_MUTEX_INITIALIZER; //ligne 118
__is_disposed = false;
nb_signals = _nb_signals;
signals = _signals;
nb_signals_ranges = _nb_signals_ranges;
signals_ranges = _signals_ranges;
last_switch_signal.tv_sec = 0;
last_switch_signal.tv_usec = 0;
Entity server;
if (4 + 2 * nb_signals + 4 * nb_signals_ranges > SIGNAL_DATA_MAX_SIZE) return true;
if (initialize_enregistrement_signal()) return true;
if (entity_initialize(&server, switch_port, switch_name)) return true;
if (signal_initialise_client(local_port, server)) return true;
return false;
} |
le retour de gcc :
Citation:
sds_process.c: In function ‘sds_initialize’:
sds_process.c:116: error: expected expression before ‘{’ token
sds_process.c:117: error: expected expression before ‘{’ token
sds_process.c:118: error: expected expression before ‘{’ token
Merci d'avance pour votre aide.
Autre question pendant qu'on y est : un warning apparait disant que usleep est déclaré implicitement alors que la bibliothèque unistd.h est bien inclue, est-ce que vous voyez ce qui se passe ?