SyncedEnforcer wraps Enforcer and provides synchronized access.
| 27 | |
| 28 | // SyncedEnforcer wraps Enforcer and provides synchronized access. |
| 29 | type SyncedEnforcer struct { |
| 30 | *Enforcer |
| 31 | m sync.RWMutex |
| 32 | stopAutoLoad chan struct{} |
| 33 | autoLoadRunning int32 |
| 34 | } |
| 35 | |
| 36 | // NewSyncedEnforcer creates a synchronized enforcer via file or DB. |
| 37 | func NewSyncedEnforcer(params ...interface{}) (*SyncedEnforcer, error) { |
nothing calls this directly
no outgoing calls
no test coverage detected