This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

How to pend a queue process in TI-RTOS

Other Parts Discussed in Thread: SYSBIOS

Customer is trying to use CC2650 work as a MCU with BLE. In their code structure there are multi-tasks. BLE is one of the sub-task not the main task. Between different task, queue is used to transfer messages. Now there are 2 tasks, A and B. Task A post a MSG into queue, and then Task B post another MSG into queue. MSG A will trigger a asynchronous operation to process the data which may take around 100~200ms to finish process the data in another thread(time cost is changing each time). During the data processing which triggered by MSG A. Task B post MSG B into queue, and this MSG B will be processed immediately which will cause B operation will be done before operation A has finished. Is there any method to let MSG B be processed only after asynchronous operation triggered by MSG A finished? Is there any API in TI-RTOS can be used?

  • Hi Barbara,

    Sorry, I'm having a hard time following the msg flow and requirements. The TI-RTOS kernel does have an ti.sysbios.knl.Event module that might be what you are looking for. It allows threads to wait for multiple things. For example, block until (Task A puts msg A on a queue AND Task B puts msg B on a queue). Event allows you to set an "andMask"and/or an "orMask" which is used for blocking.

    Todd