bonjour,
je cherche a tester si un mutex fonctionnent correctement, voici la fonction qui l'utilise

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
EUpdateResult RulesDataMapper::update(const bool statement){
	lock.lock();
...
    lock.unlock();
    return result;
}
cette fonction se situe dans la classe RulesDataMapper que je souhaite tester
j'ai alors un autre classe RulesDataMapperTest pour cela
pour l'instant voici la code que j'ai mais qui ne marche pas ça me génère un erreur

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
TEST_F(RulesDataMapperTest, testMultiThreadingResistance){
        std::thread thread1(r1->update(true));
...
ERREUR 
In file included from /usr/include/c++/5/mutex:42:0,
                 from /home/charles/Desktop/Westguard-SSM/src/test/../Controller/../DataMapper/RulesDataMapper.h:25,
                 from /home/charles/Desktop/Westguard-SSM/src/test/../Controller/EvaluateController.h:16,
                 from /home/charles/Desktop/Westguard-SSM/src/test/EvaluateControllerTest.h:9,
                 from /home/charles/Desktop/Westguard-SSM/src/test/AllTest.cpp:10:
/usr/include/c++/5/functional: In instantiation of ‘struct std::_Bind_simple<EUpdateResult()>’:
/usr/include/c++/5/thread:137:59:   required from ‘std::thread::thread(_Callable&&, _Args&& ...) [with _Callable = EUpdateResult; _Args = {}]’
/home/charles/Desktop/Westguard-SSM/src/test/RulesDataMapperTest.h:598:75:   required from here
/usr/include/c++/5/functional:1505:61: error: no type named ‘type’ in ‘class std::result_of<EUpdateResult()>’
       typedef typename result_of<_Callable(_Args...)>::type result_type;
                                                             ^
/usr/include/c++/5/functional:1526:9: error: no type named ‘type’ in ‘class std::result_of<EUpdateResult()>’
         _M_invoke(_Index_tuple<_Indices...>)
ma queston est donc la suivante es ce que pour tester un mutex on dois passer pas différent thread que l'on dois exécuter en même temps ? si oui comment créer un thread ?