I cannot use any kind of inter process communication from ISR. All of these functions cause a lock up on my setup:
What can I do to have any kind of synchronization my tasks with interrupts except polling global variables?
Those functions are what you are supposed to be using. When things lock up, what is it locked up in, could it be a configASSERT? Perhaps your ISR is set to use too high of a priority.
Indeed it was the interrupt priorities for GPIOs. The examples do not set any IRQ priorities, so I guess they stay at default 0.
I proppose calling
PIOInitializeInterrupts(configMAXSYSCALLINTERRUPTPRIORITY + 1)
or similar at the beginning of main().