Lucas De Marchi
6f952fe3dd
AP_HAL_Linux: fix checking wrong value for pthread function
...
Thanks to Phillip Khandeliants (@khandeliants) for reporting.
2017-04-18 23:57:54 -07:00
Lucas De Marchi
992abd170d
AP_HAL_Linux: allow to join threads
2016-11-02 16:28:20 -02:00
Lucas De Marchi
3b2de6de46
AP_HAL_Linux: allow PeriodicThread to stop
...
This takes the simplest approach of just waiting for the next time we
will process events.
2016-11-02 16:28:20 -02:00
Lucas De Marchi
da821e69eb
AP_HAL_Linux: Thread: allow to use Thread from stack
...
Up until now we rely on Thread objects and variants thereof to be allocated
on heap or embedded in another object that's zero'ed on initialization.
However sometimes it's convenient to be able to use them on stack as
will be the case when writting unit tests.
Initialize all relevant fields to allow them to be used on stack. While
at it, prefer C++11 initialization on Poller since it's only setting the
default (invalid) value.
2016-11-02 16:28:20 -02:00
Mathieu OTHACEHE
152edf7189
Global: remove mode line from headers
...
Using a global .dir-locals.el file is a better alternative than
reincluding the same emacs header in every file of the project.
2016-10-24 09:42:01 -02:00
Gustavo Jose de Sousa
9a100afede
AP_HAL_Linux: Thread: add doc about rounding function
2016-05-20 16:31:15 -03:00
Lucas De Marchi
359417d544
AP_HAL_Linux: Thread: make sure pointer is aligned
...
Implementation of alloca() is very much architecture and compiler
dependent. Avoid the case in which it could return a non-aligned
pointer, which would mean Thread::_poison_stack() would do the wrong
thing.
2016-05-20 16:31:15 -03:00
Lucas De Marchi
7e49d0c53f
AP_HAL_Linux: Thread: fix alignment warning
...
../../libraries/AP_HAL_Linux/Thread.cpp: In member function ‘void Linux::Thread::_poison_stack()’:
../../libraries/AP_HAL_Linux/Thread.cpp:87:31: warning: cast from ‘uint8_t* {aka unsigned char*}’ to ‘uint32_t* {aka unsigned int*}’ increases required alignment of target type [-Wcast-align]
for (p = (uint32_t *) end; p > curr; p--) {
^
../../libraries/AP_HAL_Linux/Thread.cpp:93:31: warning: cast from ‘uint8_t* {aka unsigned char*}’ to ‘uint32_t* {aka unsigned int*}’ increases required alignment of target type [-Wcast-align]
for (p = (uint32_t *) end; p < curr; p++) {
^
../../libraries/AP_HAL_Linux/Thread.cpp:98:39: warning: cast from ‘uint8_t* {aka unsigned char*}’ to ‘uint32_t* {aka unsigned int*}’ increases required alignment of target type [-Wcast-align]
_stack_debug.start = (uint32_t *) begin;
^
../../libraries/AP_HAL_Linux/Thread.cpp:99:37: warning: cast from ‘uint8_t* {aka unsigned char*}’ to ‘uint32_t* {aka unsigned int*}’ increases required alignment of target type [-Wcast-align]
_stack_debug.end = (uint32_t *) end;
^
2016-05-20 16:31:15 -03:00
Lucas De Marchi
18af4da690
AP_HAL_Linux: Thread: fix warning regarding shadow member
...
../../libraries/AP_HAL_Linux/Thread.cpp: In member function ‘void Linux::Thread::_poison_stack()’:
../../libraries/AP_HAL_Linux/Thread.cpp:63:20: warning: declaration of ‘start’ shadows a member of 'this' [-Wshadow]
uint8_t *end, *start, *curr;
^
2016-05-20 16:31:15 -03:00
Lucas De Marchi
b2d4da4b0a
AP_HAL_Linux: Thread: allow to set stack size
...
This allows the code that is creating the thread to set the size of the
stack.
2016-05-12 13:35:23 -03:00
Lucas De Marchi
f5f4aa7c21
AP_HAL_Linux: Thread: allow to debug stack usage
2016-05-12 13:35:23 -03:00
Lucas De Marchi
48e81c8589
AP_HAL_Linux: Thread: add PeriodicThread helper
...
This is a helper class to run a single periodic function like the ones
used in the scheduler.
2016-02-12 23:42:34 -02:00
Lucas De Marchi
0282ebb8ff
AP_HAL_Linux: add method to check caller same as thread
2016-02-12 23:42:34 -02:00
Lucas De Marchi
66e6cd60d8
AP_HAL_Linux: Thread: allow to override run method
2016-02-12 23:42:34 -02:00
Lucas De Marchi
3e0a83ede9
AP_HAL_Linux: add Thread abstraction class
2016-02-12 23:42:34 -02:00