single reader/writer with linked list