# FC10 — direct-to-task notifications One receiver task exercises three notification contracts without a queue, semaphore or EventGroup object: - three `xTaskNotifyGive()` calls accumulate to `ulTaskNotifyTake(pdTRUE)==3`; - two `eSetValueWithOverwrite` posts retain the latest value `0x22`; - two `eSetBits` posts combine to `0x24`. The high-priority sender waits for an explicit receiver phase and public `eBlocked` state before every batch. Therefore the receiver cannot run between posts and accidentally turn `3` into `1+1+1`. A zero-time probe proves that the slot value is cleared between protocols. ```sh make task1 host-test check-abi sim check-determinism ``` The canonical Hazard3 run commits E01–E12 and prints digest `c60747cb`. Interactive views A2, A3, A5, A6, A7 and A8 connect the target handle, TCB slot, flow, state, runtime evidence and protocol choices. Source basis: FreeRTOS Kernel Book, Chapter 10.