A blocking queue is a queue that supports operations to wait for the queue to become non-empty when retrieving an element and to wait for space to become available in the queue when adding an element. This implementation of a blocking queue is based on a circular buffer with thread-safe access using a ReentrantLock
.
To use the blockingqueue
in your Ballerina project, modify the .bal
file as follows:
Import the ayash/blockingqueue
module into your Ballerina project.
import ayash/blockingqueue;
The constructor initializes the queue with a specified capacity.
blockingqueue:BlockingQueue queue = new blockingqueue:BlockingQueue(5);
Use the following command to compile and run the Ballerina program.
bal run
-
Download and install Java SE Development Kit (JDK) version 17. You can download it from either of the following sources:
Note: After installation, remember to set the
JAVA_HOME
environment variable to the directory where JDK was installed. -
Download and install Ballerina Swan Lake.
-
Download and install Docker.
Note: Ensure that the Docker daemon is running before executing any tests.
-
Export Github Personal access token with read package permissions as follows,
export packageUser=<Username> export packagePAT=<Personal access token>
Execute the commands below to build from the source.
-
To build the package:
./gradlew clean build
-
To run the tests:
./gradlew clean test
-
To build the without the tests:
./gradlew clean build -x test
-
To run tests against different environments:
./gradlew clean test -Pgroups=<Comma separated groups/test cases>
-
To debug the package with a remote debugger:
./gradlew clean build -Pdebug=<port>
-
To debug with the Ballerina language:
./gradlew clean build -PbalJavaDebug=<port>
-
Publish the generated artifacts to the local Ballerina Central repository:
./gradlew clean build -PpublishToLocalCentral=true
-
Publish the generated artifacts to the Ballerina Central repository:
./gradlew clean build -PpublishToCentral=true
As an open-source project, Ballerina welcomes contributions from the community.
For more information, go to the contribution guidelines.
All the contributors are encouraged to read the Ballerina Code of Conduct.