172 похожих чатов

Добрый день господавры, приступил к изучению раста буквально пару дней

назад и мне отчаянно нужна помощь.
Подскажите, пожалуйста, как мне решить проблему:
я открываю .write() на инстансе структуры (не шарю за терминологию) и пишу в его свойства. Но в других местах моей программы я должен читать из этого инстанса, (но тут есть момент - я должен держать write ОТКРЫТЫМ) но делать этого я не могу из-за :RwLock
что я должен делать в расте, чтобы читать и писать одновременно?

16 ответов

14 просмотров

Ничо не понял. Зачем держать открытым. В любом случае подозреваю что тебе в раст бегиннерз. (Соседний чат)

Alex Noname
Ничо не понял. Зачем держать открытым. В любом слу...

Прошу прощения, однако в чем тогда цель этого чата?

Ragnar Sigurðsson
ок, спс

Эээ... Все ещё не понял вопрос. Тут никто не пытается тебя послать. Не подумай так.

Мб тебе подойдёт single producer-multi consumer channel?

Выглядит как "я хочу отстрелить себе ногу, подскажите". Но вряд ли ты хотел спросить именно это. Возможно, тебе нужны lock-free структуры данных?

Ragnar-Sigurðsson Автор вопроса
Alex Noname
Эээ... Все ещё не понял вопрос. Тут никто не пытае...

Я так не думаю, я просто пошёл и спросил в этом соседнем чате :)

Ragnar-Sigurðsson Автор вопроса
Andrey Vlasov
Мб тебе подойдёт single producer-multi consumer ch...

его и юзаю я юзаю tokio и обертываю с помощью RwLock структуры, которые под капотом листенят вебсокеты и накапливают в себя данные. А другой таске мне надо читать и обрабатывать эти накопленные данные раз в секунду. Чтобы стартануть сами вебсокеты и начать запись, мне нужен write на RwLock В другом месте я читаю данные из этих структур, но т.к выхода из скоупа не произошло, данные структуры залочены и я не могу сделать их read. Основной вопрос: может использовать какой-то другой паттерн, чтобы обойти проблему или есть иные способы при текущей реализации? На расте недавно, я пытаюсь портировать node.js код

Ragnar Sigurðsson
его и юзаю я юзаю tokio и обертываю с помощью RwLo...

Ты имплементируешь паттерн или юзаешь готовую реализацию?

Ragnar-Sigurðsson Автор вопроса
Andrey Vlasov
Ты имплементируешь паттерн или юзаешь готовую реал...

готовую реализацию, наверное. стандартную mpsc::channel. ну либо я не понял вопроса

Ragnar Sigurðsson
готовую реализацию, наверное. стандартную mpsc::ch...

Тогда почему у тебя есть общий лок на чтение/запись?

Ragnar-Sigurðsson Автор вопроса
Andrey Vlasov
Тогда почему у тебя есть общий лок на чтение/запис...

потому что помимо отправки обработки данных в других тасках/потоках (для этого нужен лок), мне еще нужно обрабатывать события для других целей (отправлять конкретные кусочки данных, изменивших стейт залоченный)

Ragnar Sigurðsson
потому что помимо отправки обработки данных в друг...

Для отправки лок не нужен, потому что в этом смысл канала. Трансмиттер для multi producer channel имплементирует Clone, поэтому его нужно клонировать, а не шерить. Лок у него есть внутри То же самое с принимающей стороной, если канал multi-consumer

Раздели структуру на две

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта