Detecting directory changes.

COLLOT Jean-Yves Jean-Yves.COLLOT at cofiroute.fr
Mon Mar 17 11:47:10 GMT 2003


> Doing whatever F11X$POSIX_FASTRDSEQNOS does. This is one of
>  two things - it either enqueues a lock and dequeues the lock
>  (...) , or it directly accesses the memory structures used by the
>  lock manager

The routine actually enqueues/dequeues a lock, and does not access directly
the lock manager data structures. That's true is not so "FAST", but I assume
it does this because it does not want too be too much dependant of the
internal data structures, which are regularly changing when VMS version
changes.

> I tend to prefer notification via AST over polling. It is more efficient
> and should be faster

I do too, but may be not in this case, because 
1. doing this may interfer with internal VMS behaviour, and slow down the
entire system (imagine you have a big lot of SMBD processes), 
2. you may end with a huge number of locks (one per directory/per SMBD
process)
3. using blocking ASTs in kernel mode can be highly dangerous, because image
exit does NOT dequeue those locks, so you must be absolutely sure that there
is no kernel blocking AST left when you exit, unless you'll crash when
trying to execute a blocking AST routine that is no more in memory.

> (about rewriting the F11X$ routine in C)
> Since this could work on a VAX, but the routine doesn't exist there, 
> then it might be useful if you want it to work equally well on a VAX.

That's true, and would make it a little less undocumented/unsupported,
because it would only depend on the resource names used by the XQP, and not
on the actual presence of the F11X$ routine. I'll do it as soon as I have a
little time.


More information about the samba-vms mailing list