Skip to content

Add thread-safe storage - #41

Merged
somasekimoto merged 6 commits into
mainfrom
fix/thread-safe-storage
Dec 2, 2025
Merged

somasekimoto merged 6 commits into
mainfrom
fix/thread-safe-storage

Conversation

@somasekimoto

Copy link
Copy Markdown
Contributor

Summary

  • ストレージモジュール(LeveldbStorage, LeveldbNodeStorage)を RefCell から Mutex に変更してスレッドセーフ化
  • OperationStorage / NodeStorage トレイトに Send + Sync 制約を追加
  • テストコードの MemoryNodeStorage / MockStorageMutex ベースに更新
  • README にスレッドセーフとauto-merge機能の説明を追加

Test plan

  • cargo test が通ることを確認
  • cargo clippy でエラーがないことを確認

🤖 Generated with Claude Code

@somasekimoto somasekimoto changed the title ストレージモジュールのスレッドセーフ化とauto-merge機能追加 ストレージモジュールのスレッドセーフ化 Nov 29, 2025
@somasekimoto somasekimoto changed the title ストレージモジュールのスレッドセーフ化 Add thread-safe storage and auto-merge features Nov 29, 2025
@somasekimoto somasekimoto changed the title Add thread-safe storage and auto-merge features Add thread-safe storage Nov 29, 2025
- Replace RefCell with Mutex in SharedLeveldb for thread safety
- Replace Rc with Arc for shared ownership across threads
- Add Send + Sync bounds to OperationStorage and NodeStorage traits
- Update all storage implementations to use Mutex::lock()
- Add LockPoisoned variant to BatchError for proper error handling
- Update test mocks (MockStorage, MemoryNodeStorage) to use Arc<Mutex>
- Update FailingOperationStorage/FailingNodeStorage to use AtomicBool

This enables crsl-lib to be safely used in async/await environments
and multi-threaded contexts.
@somasekimoto
somasekimoto requested a review from Yu-da-1 November 29, 2025 20:35
@Yu-da-1

Yu-da-1 commented Nov 30, 2025

Copy link
Copy Markdown
Member

ありがとうございます!!!

Base automatically changed from feature/add-convergence-layer to main December 2, 2025 14:51
@somasekimoto
somasekimoto merged commit ae53585 into main Dec 2, 2025
4 checks passed
@somasekimoto
somasekimoto deleted the fix/thread-safe-storage branch December 2, 2025 14:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants