# v1.1.3 Release Notes

## REFACTOR
- Replace `Queue.closed` bool + `sync.RWMutex` with `atomic.Uint32` state
- Use CAS in `Start()` to ensure transition from `stateCreated` to `stateRunning` only
- Use CAS loop in `Shutdown()` for idempotent closure (allow multiple calls)

## UPDATE
- Change `Start()` return type to `error` for state check error reporting
- Change `Config.Timeout` type from `int64` to `time.Duration`
- Change default `Timeout` from `30` to `30 * time.Second`

## FIX
- Fix `Enqueue()` error message formatting, use `%w` to wrap underlying error
- Fix `Shutdown()` to call `cancel()` after completion for context cleanup

***

## REFACTOR
- 將 `Queue.closed` bool + `sync.RWMutex` 替換為 `atomic.Uint32` state
- 在 `Start()` 中使用 CAS 確保只能從 `stateCreated` 轉換到 `stateRunning`
- 在 `Shutdown()` 中使用 CAS loop 確保冪等性關閉（允許多次調用）

## UPDATE
- 修改 `Start()` 返回型別為 `error`，支援狀態檢查錯誤回報
- `Config.Timeout` 型別從 `int64` 改為 `time.Duration`
- 預設 `Timeout` 值從 `30` 改為 `30 * time.Second`

## FIX
- 修正 `Enqueue()` 錯誤訊息格式化，使用 `%w` 包裹底層錯誤
- 修正 `Shutdown()` 在完成後呼叫 `cancel()` 清理 context