Skip to content

Commit 658e107

Browse files
committed
Fix connection race in C++ demo
1 parent 22416bd commit 658e107

File tree

1 file changed

+8
-0
lines changed

1 file changed

+8
-0
lines changed

lightning-c-bindings/demo.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -242,6 +242,14 @@ class PeersConnection {
242242
PeerManager_disconnect_by_node_id(&net1, ChannelManager_get_our_node_id(&cm2));
243243
assert(!socket_connect(node1_handler, ChannelManager_get_our_node_id(&cm2), (sockaddr*)&listen_addr, sizeof(listen_addr)));
244244

245+
while (true) {
246+
// Wait for the new connection handshake...
247+
LDK::CVec_C2Tuple_PublicKeyCOption_NetAddressZZZ peers_1 = PeerManager_get_peer_node_ids(&net1);
248+
LDK::CVec_C2Tuple_PublicKeyCOption_NetAddressZZZ peers_2 = PeerManager_get_peer_node_ids(&net2);
249+
if (peers_1->datalen == 1 && peers_2->datalen == 1) { break; }
250+
std::this_thread::yield();
251+
}
252+
245253
// Wait for all our sockets to disconnect (making sure we disconnect any new connections)...
246254
while (true) {
247255
PeerManager_disconnect_by_node_id(&net1, ChannelManager_get_our_node_id(&cm2));

0 commit comments

Comments
 (0)