"Ryan Bloom" <[EMAIL PROTECTED]> writes:
If we are on a platform that doesn't support atomic add/set, just do what Windows does. Namely, have a global mutex that is set for any atomic add or set command. The add/set is only atomic across other threads/process using the same add/set functions, but that should be good enough.
not scalable...
the app would be better off rolling their own support
The way I was thinking of implementing the atomic to implement a 'apr_atomic_t' which is only 24bits wide (linux only supports 24 bits)
this would be mapped to the OS's atomic type if available. otherwise it would be someting like
typedef struct {
apr_lock_t lock; /* either a mutex or some home grown spinlock*/
int value;
}which would introduce a apr_atomic_init/apr_atomic_term
I'll work on getting the 'generic' version up first, and make sure it works in a speedy way,
no my main question .. how do OS's handle multiple locks. I don't think solaris has a issue with 1000's of locks created is there some kind of performance penalty in creating 100/1000 locks instead of using a single lock?
..Ian
