What to do when things go wrong
- Symptom: "Invalid argument" (EINVAL)
- Probable cause: data structures have changed
- Solution: all attached processes must release
data blocks before reattaching
- Symptom: "Device or resource busy" (EBUSY)
- Probable cause: process has a write lock, possibly crashed
- Solution: run flcomms -c to release write locks
- Symptom: flc_read() returns 0, errno=ETIME ("Timeout")
- Probable cause: concurrent write access
- Solution: Probably safe to ignore; use previous value
- If ETIME persists, writer has probably been killed or suspended
- E2BIG, ENOSPC -- FLCOMMs size limitation exceeded
(data block too large, too many data blocks)