We have a concurrent package, and JRE locks live in a similar package,

so let's put our new code in there.
This commit is contained in:
Gary Gregory 2020-06-17 16:53:15 -04:00
parent 7ba418fc6f
commit fc686a48ef
2 changed files with 8 additions and 4 deletions

View File

@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.commons.lang3;
package org.apache.commons.lang3.concurrent;
import java.util.Objects;
import java.util.concurrent.locks.StampedLock;
@ -24,7 +24,8 @@
import org.apache.commons.lang3.function.FailableFunction;
/** Utility class for working with {@link java.util.concurrent.locks.Lock locked objects}. Locked objects are an
/**
* Utility class for working with {@link java.util.concurrent.locks.Lock locked objects}. Locked objects are an
* alternative to synchronization.
*
* Locking is preferable, if there is a distinction between read access (multiple threads may have read
@ -64,8 +65,10 @@
* lock.runWriteLocked((ps) -> { ps.write(buffer); ps.println(); });
* }
* </pre>
* @since 3.11
*/
public class Locks {
public static class Lock<O extends Object> {
private final O lockedObject;
private final StampedLock lock = new StampedLock();

View File

@ -14,13 +14,14 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.commons.lang3;
package org.apache.commons.lang3.concurrent;
import static org.junit.jupiter.api.Assertions.assertTrue;
import java.util.function.LongConsumer;
import org.apache.commons.lang3.Locks.Lock;
import org.apache.commons.lang3.concurrent.Locks;
import org.apache.commons.lang3.concurrent.Locks.Lock;
import org.apache.commons.lang3.function.FailableConsumer;
import org.junit.jupiter.api.Test;