Hello,
 
Question about particular code in LiS-2.18.
 
In lis_stropen() function the following 2 lines:
 
if ((err = lis_set_q_sync(head->sd_wq, LIS_QLOCK_QUEUE)) == 0)
err = lis_set_q_sync(head->sd_wq->q_next, LIS_DEVST(maj).f_qlock_option) ;
 
The f_qlock_option passed to lis_set_q_sync() in 2nd line can be -1.
In fact it is -1. 
 
The lis_set_q_sync() will do nasty thing if -1 is passed to it.
It will just free existing queue lock and return.
 
I also have doubts that it is a good thing to manipulate with queue lock
of the q_next queue without freezing that q_next queue somehow.
[What if it is queuerun'ed at the moment?]
 
The question is: what would be a good fix for that 2nd call with f_qlock_option parameter?
 
Guess I should check f_qlock_option and if it is -1 then what?
 
Skip that lis_set_q_sync() call or call it with LIS_QLOCK_QUEUE instead?
 
--
Eugene
 
 

Try the New Netscape Mail Today!
Virtually Spam-Free | More Storage | Import Your Contact List
http://mail.netscape.com

Reply via email to