If you always have 2 or more readers active, the signal(wrt)
will never get called at the end of the reader block. New readers won't have readcount == 1
so they won't wait on wrt, but they'll increase the readcount. This makes unending read requests starve the writer thread. If the reader count ever gets to 0, then the wrt will be released and the writer can finally work. Until that point readers have priority.
This isn't a LIFO approach precisely, but rather priority queue where readers have priority.