Hi,   
I am using Freertos 7.1.1 in cooperative mode, but for some reason I am seeing that my tasks are pre-empted !   
This was eg detected by adding a counter in the memory free function (increase at the start, decrease at the end).
Every once and a while, the function is entered while the counter is still 1  (and if I also log the taskhandle of the ‘other task already in the function’, I see that it points to another one of my  tasks in the ready state).
When letting it run a little bit longer, the counter becomes 0 again, so the other task apparently continued from within the function.  
Exactly the behavior one would expect in case of a preemptive scheduler, but not with a cooperative one.  
Any suggestions about what might be going on ?
The memory free function does not contain yields etc which could explain the taskswitch.  
Are there other not immediately obvious ways in which a task may be preempted even in cooperative mode (except for interrupts of course).
Eg  For the xTimerCreate callback function, it is not directly clear under which task that  is called ?  
Preemption in cooperative mode?
Preemption in cooperative mode?
Do any of your interrupts call a yield function directly or through a macro like portEND_SWITCHING_ISR or portYIELD_FROM_ISR?  
Does your task call any API functions that would make it block?
Preemption in cooperative mode?
You are absolutely right,  the networking interrupt handler does a yield from ISR.  
Thanks a *lot* for the solution !  
 
  