Skip to content

Commit 661a82b

Browse files
authored
Update dependencies
1 parent 75fd778 commit 661a82b

File tree

1 file changed

+33
-14
lines changed

1 file changed

+33
-14
lines changed

print-foobar-alternately/BlockingQueue.ixx

Lines changed: 33 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,16 @@ export module leetcode_test.print_foobar_alternately.BlockingQueue;
99
using namespace std;
1010
namespace leetcode_test::print_foobar_alternately {
1111

12-
export template <class E> class BlockingQueue {
12+
export template <class E>
13+
class BlockingQueue {
1314

14-
private:
15+
private:
1516
queue<E> _queue;
1617
int capacity = INT_MAX;
1718
condition_variable takeVariable, putVariable;
1819
mutable mutex lock;
1920

20-
public:
21+
public:
2122
BlockingQueue();
2223
/**
2324
*
@@ -29,13 +30,13 @@ export template <class E> class BlockingQueue {
2930
* @param e
3031
* @return -1失败, 0成功
3132
*/
32-
int take(E &e);
33+
int take(E& e);
3334
/**
3435
* size >= capacity时会阻塞
3536
* @param e
3637
* @return
3738
*/
38-
int put(const E &e);
39+
int put(const E& e);
3940

4041
bool empty() const;
4142

@@ -48,12 +49,18 @@ export template <class E> class BlockingQueue {
4849
E front();
4950
};
5051

51-
template <class E> BlockingQueue<E>::BlockingQueue() {}
52+
template <class E>
53+
BlockingQueue<E>::BlockingQueue() { }
5254

5355
template <class E>
54-
BlockingQueue<E>::BlockingQueue(int capacity) : capacity(capacity) {}
56+
BlockingQueue<E>::BlockingQueue(int capacity)
57+
: capacity(capacity)
58+
{
59+
}
5560

56-
template <class E> int BlockingQueue<E>::take(E &e) {
61+
template <class E>
62+
int BlockingQueue<E>::take(E& e)
63+
{
5764
unique_lock<mutex> uniqueLock(lock);
5865
while (_queue.empty()) {
5966
takeVariable.wait(uniqueLock);
@@ -66,7 +73,9 @@ template <class E> int BlockingQueue<E>::take(E &e) {
6673
return 0;
6774
}
6875

69-
template <class E> int BlockingQueue<E>::put(const E &e) {
76+
template <class E>
77+
int BlockingQueue<E>::put(const E& e)
78+
{
7079
unique_lock<mutex> uniqueLock(lock);
7180
while (_queue.size() >= capacity) {
7281
putVariable.wait(uniqueLock);
@@ -78,28 +87,38 @@ template <class E> int BlockingQueue<E>::put(const E &e) {
7887
return 0;
7988
}
8089

81-
template <class E> bool BlockingQueue<E>::empty() const {
90+
template <class E>
91+
bool BlockingQueue<E>::empty() const
92+
{
8293
lock_guard<mutex> lockGuard(lock);
8394
return _queue.empty();
8495
}
8596

86-
template <class E> unsigned int BlockingQueue<E>::size() const {
97+
template <class E>
98+
unsigned int BlockingQueue<E>::size() const
99+
{
87100
lock_guard<mutex> lockGuard(lock); // 利用变量作用域创建加锁,析构自动解锁
88101
return _queue.size();
89102
}
90103

91-
template <class E> void BlockingQueue<E>::pop() {
104+
template <class E>
105+
void BlockingQueue<E>::pop()
106+
{
92107
lock.lock();
93108
_queue.pop();
94109
lock.unlock();
95110
}
96111

97-
template <class E> E BlockingQueue<E>::back() {
112+
template <class E>
113+
E BlockingQueue<E>::back()
114+
{
98115
lock_guard<mutex> lockGuard(lock);
99116
return _queue.back();
100117
}
101118

102-
template <class E> E BlockingQueue<E>::front() {
119+
template <class E>
120+
E BlockingQueue<E>::front()
121+
{
103122
lock_guard<mutex> lockGuard(lock);
104123
return _queue.front();
105124
}

0 commit comments

Comments
 (0)