Hi Jordan, we are using something similar that is an extension of what you have:
basically as each user logs in, they add a record to a table and RLOCK() it.
at the same time you can delete any unlocked records (crashes etc), you can also check number of users at this point and prevent access.
here is a simple example
SET DATASESSION TO 1
SELECT ULOCKS
SCAN FOR RLOCK()
DELETE
ENDSCAN
APPEND BLANK
=RLOCK()
- Craig
"If you're not prepared to be wrong, you will never come up with anything original."
- Sir Ken Robinson