June 22, 2020

Başıma çok ilginç bir olay geldi paylaşmak istedim,

Şimdi benim D dilinde yazılmış ana uygulamam zmq ile 300'e yakın C++ ile yazılmış başka uygulamalarım ile iletişime geçiyor.
C++ uygulaması libWebSocket++ kütüphanesini kullanıyor. Ve websocketlerinden data alıyor.

Çok ilginç birşey yaşadım kendim konsoldan çağırdığım zaman çok güzel çalışan C++ uygulamasını, D'den spawnProcess ile çağırdığımda şu hatayı alıyordum

Alıntı:

>

[2020/06/22 19:30:23:7119] N: lws_client_connect_2: lws_getaddrinfo46 failed -11

Araştırdıktan sonra bunun libwebsocket'ın eski sürümlerinde olan bir sorun olduğunu öğrendim.

Fakat neden sadece D 'den spawnProcess ile cağırınca oluyordu.

Yaklaşık 2 saat harcadıktan ve 1 milyon şey denedikten sonra şunun sorunumu çözdüğünü gördüm

  auto  pid = spawnProcess([
               "/home/erdem/Bot/PrivateBot/CppSocketClient/cppWebSocketClient", "ethbtc@aggTrade"
               ], null,** std.process.Config.newEnv**);

Şu anki tahminim vibe.d 'ninde libWebsocket'ı kullandığı ve dub klasörümde libWebsocket'ın eski bir versiyonu olduğu ve newEnv kullanılmazsa yavru uygulamanın dub klasöründeki eski kütüphaneyi alması.

Ama emin değilim. Hİç olmazsa yatmadan çözebildim.

Erdemdem

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]