Chciałem w każdym uruchomionym wątku, stworzyć sobie klienta łączącego się z serwerem, przesyłającego jakieś kilku megabajtowe pliki a na końcu zamykający połączenie.
Jednak zauważyłem że wywoływanie smbc_new_context z wielu wątków jednocześnie, powoduje problemy z pamięcią i wysypywanie się programu a nie znalazłem innej metody na łączenie się z serwerem i przesyłanie danych.
Próbowałem grzebać w bindingach które używamy, ale nie udało mi się nic zdziałać - issue https://github.com/veeso/pavao/issues/17
Obecnie w programie dodaję globalnego locka na operacje i tylko jedna na raz może się wykonywać.
Czy samba jest ograniczona do działania tylko w jednym watku w programie, czy może to błąd nakładki której używam, czy może istnieje jakaś opcja do uruchomienia wsparcia wielu wątków?
#samba
#jezykc
#programowanie
@qarmin samba zawsze mi się kojarzyła z jednym wielkim nieporozumieniem.
Btw, a cifs-utils?
@globalbus Chyba nawet w jednym miejscu z tego korzystamy do przesyłania dużych plików, jednak wywoływane jest to jako zewnętrzny program i wymaga roota(w sensie trudniej to testować lokalnie).
@qarmin - ale do przesyłania plików weź ty użyj czegoś normalnego jak scp, rsync, robocopy, gołe SSH, sftp a nawet ftp(s).
@koszotorobur Sprzęt ma być dostępny u klientów, więc raczej wszystko z powyższych odpada, bo wymaga bardziej skomplikowanych operacji.
Z sambą jest o tyle dobrze, że niemal każdy z poziomu windowsa, prosto sobie to może postawić(być może w przyszłości jakieś inne metody będą dodane, ale samba to must have).
@qarmin a myślaleś o instalacji z powershella:
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
?
@m_h Cóż, z przyzwyczajenia nie napisałem że korzystam z Linuxa, więc to nie jest dostępne tutaj.
@qarmin - no to nie zazdroszczę Ci jako użytkownikowi Linuksa przymusu wspierania tego Windowsowego gówna
Znalazłem libsmb2, która wspiera async - może to Ci zadziała
@koszotorobur Dzięki, może to zadziała.
Mimo wszystko wydaje mi się, że i tak sambie daleko do np. Dicom w rankingu najbardziej problematycznych api/bibliotek/usług.
@qarmin Ale to są komendy powershellowe, o stąd:
chociaż sam ekspertem od windowsa nie jestem.
@m_h Samo polecenie `Add-WindowsCapability` i strona `Get started with OpenSSH for Windows` jasno sugeruje że jest to feature tylko dla Windowsa.
Jak budujemy obraz systemu, to raczej nie możemy się opierać na operacjach, które by dokończyć instalację wymagają uruchomienia n razy systemu, a raczej tak właśnie jest z powyższym poleceniem
Zaloguj się aby komentować