Skip to content

Commit e5c1e7b

Browse files
authored
Update talk.java for removing locks out.
1 parent 079df54 commit e5c1e7b

File tree

1 file changed

+2
-17
lines changed

1 file changed

+2
-17
lines changed

src/tinystruct/examples/talk.java

Lines changed: 2 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,6 @@
1717
import java.util.concurrent.ExecutorService;
1818
import java.util.concurrent.Executors;
1919
import java.util.concurrent.TimeUnit;
20-
import java.util.concurrent.locks.Condition;
21-
import java.util.concurrent.locks.Lock;
22-
import java.util.concurrent.locks.ReentrantLock;
2320

2421
import org.tinystruct.AbstractApplication;
2522
import org.tinystruct.ApplicationException;
@@ -28,14 +25,11 @@
2825

2926
public class talk extends AbstractApplication {
3027

31-
private static final long TIMEOUT = 100;
3228
protected static final int DEFAULT_MESSAGE_POOL_SIZE = 10;
3329
protected final Map<String, BlockingQueue<Builder>> meetings = new ConcurrentHashMap<String, BlockingQueue<Builder>>();
3430
protected final Map<String, Queue<Builder>> list = new ConcurrentHashMap<String, Queue<Builder>>();
3531
protected final Map<String, List<String>> sessions = new ConcurrentHashMap<String, List<String>>();
3632
private ExecutorService service;
37-
private final Lock lock = new ReentrantLock();
38-
private final Condition consumer = lock.newCondition();
3933

4034
@Override
4135
public void init() {
@@ -136,15 +130,9 @@ public final String update(final String sessionId) throws ApplicationException,
136130
Queue<Builder> messages = this.list.get(sessionId);
137131
// If there is a new message, then return it directly
138132
if((message = messages.poll()) != null) return message.toString();
139-
lock.lock();
140133
while((message = messages.poll()) == null) {
141-
try {
142-
consumer.await(TIMEOUT, TimeUnit.MICROSECONDS);
143-
} catch (InterruptedException e) {
144-
throw new ApplicationException(e.getMessage(), e);
145-
}
134+
;
146135
}
147-
lock.unlock();
148136
return message.toString();
149137
}
150138

@@ -172,18 +160,15 @@ private final void copy(Object meetingCode, Builder builder) {
172160
while(iterator.hasNext()) {
173161
Entry<String, Queue<Builder>> list = iterator.next();
174162
if(_sessions.contains(list.getKey())) {
175-
lock.lock();
176163
list.getValue().add(builder);
177-
consumer.signalAll();
178-
lock.unlock();
179164
}
180165
}
181166
}
182167
}
183168

184169
@Override
185170
public String version() {
186-
return "Welcome to use tinystruct 2.0";
171+
return "Talk core version:1.0 stable; Released on 2017-07-24";
187172
}
188173

189174
/**

0 commit comments

Comments
 (0)