This repository was archived by the owner on Aug 13, 2023. It is now read-only.
This repository was archived by the owner on Aug 13, 2023. It is now read-only.
Race Condition in SunshineRepository.getInstance #38
Open
Description
There is a race condition in the getInstance method in SunshineRepository.java.
Imagine there are 2 threads - A and B - both calling getInstance() and that sInstance is null to start with
Thread A
Checks if sInstance is null. Returns True
Thread B
Checks if sInstance is null. Returns True
Thread A
Obtains the lock and creates a new instance for sInstance. Releases lock
Thread B
Remember Thread B already checked if sInstance was null earlier.
Obtains the lock and creates a new instance for sInstance. Releases lock
There should be a second null check inside the synchronized block.
Metadata
Metadata
Assignees
Labels
No labels