These semaphore Get/Set APIs are only used by any procedure related with the WIFI.
In the API "host_rtos_get_semaphore()", you can find it calls the function "wwd_thread_poll_all( )".
In the function "wwd_thread_poll_all( )", it will send/receive packet to/from WIFI chip, when sent/received packet, it will set the semaphore as need.
It is more complicated procedure.
You just need to image that in the get semaphore function, it still loop to do something that will make the semaphore to be set.
Thanks a lot.