HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 14.10.2021, 20:46
kin4stat
Флудер
Регистрация: 06.11.2017
Сообщений: 2,759
С нами: 4483143

Репутация: 183


По умолчанию

ktcoro_wait​Приостановка выполенения функции на время основанное на корутинах C++20

Примеры кода​

C++:





[CODE]
#include
#include
#include "ktcoro_wait.hpp"
ktwait
bar
(
)
{
using
namespace
std
::
chrono_literals
;
while
(
true
)
{
std
::
cout



Download & Source:

GitHub - kin4stat/ktcoro_wait

Contribute to kin4stat/ktcoro_wait development by creating an account on GitHub.

github.com
 
Ответить с цитированием

  #2  
Старый 14.10.2021, 20:52
memir
Постоянный
Регистрация: 21.08.2015
Сообщений: 343
С нами: 5646349

Репутация: 163
По умолчанию

.

 
Ответить с цитированием

  #3  
Старый 14.10.2021, 21:05
sc6ut
Постоянный
Регистрация: 03.05.2020
Сообщений: 385
С нами: 3174020

Репутация: 213
По умолчанию

Цитата:
Сообщение от memir  

.
 
Ответить с цитированием

  #4  
Старый 15.10.2021, 09:42
F0RQU1N and
Познавший АНТИЧАТ
Регистрация: 29.09.2018
Сообщений: 1,292
С нами: 4012500

Репутация: 138


По умолчанию

ахуенно бро
 
Ответить с цитированием

  #5  
Старый 15.10.2021, 16:48
SR_team
Флудер
Регистрация: 26.10.2013
Сообщений: 4,924
С нами: 6603505

Репутация: 183


По умолчанию

remove_if же не удаляет элементы по настоящему, только меняет итераторы

std::remove, std::remove_if - cppreference.com

en.cppreference.com


UPD: Я еблан, там и не надо ничего удалять. @kin4stat как оно будет работать на нескольких потоках?

UPD2: Проверил сам потоки. Все корутины катчатся в инстанс потока main. И bar, который вызывает co_wait из потока t1, продолжает свое выполнение уже в потоке main

C++:





[CODE]
#include
#include
#include
#include "include/ktcoro_wait.hpp"
ktwait
bar
(
)
{
using
namespace
std
::
chrono_literals
;
while
(
true
)
{
std
::
cout

 
Ответить с цитированием

  #6  
Старый 15.10.2021, 20:06
kin4stat
Флудер
Регистрация: 06.11.2017
Сообщений: 2,759
С нами: 4483143

Репутация: 183


По умолчанию

Цитата:
Сообщение от SR_team  

UPD2: Проверил сам потоки. Все корутины катчатся в инстанс потока main. И bar, который вызывает co_wait из потока t1, продолжает свое выполнение уже в потоке main
Починил. Теперь можно гонять таски своего потока, чужого потока, и все таски в приципе.

Также теперь при эвейте другой таски текущая будет ждать окончания выполнения таски которую co_await'нули.

Также теперь можно удалять таски для чужих потоков, и в приципе во всем тасклисте по всем потокам. Небезопасно если вы удаляете таску которая эвейтнула другую таску. Мне слишком лень это фиксить.
 
Ответить с цитированием

  #7  
Старый 15.10.2021, 20:54
SR_team
Флудер
Регистрация: 26.10.2013
Сообщений: 4,924
С нами: 6603505

Репутация: 183


По умолчанию

Цитата:
Сообщение от kin4stat  

Починил. Теперь можно гонять таски своего потока, чужого потока, и все таски в приципе.
Также теперь при эвейте другой таски текущая будет ждать окончания выполнения таски которую co_await'нули.
Также теперь можно удалять таски для чужих потоков, и в приципе во всем тасклисте по всем потокам. Небезопасно если вы удаляете таску которая эвейтнула другую таску. Мне слишком лень это фиксить.
а нельзя несколько инстансов завести? Просто в текущей реализации пока выполняются корутины из одного потока, корутины другого потока спят, а до вызова co_wait может быть очень тяжелая операция
 
Ответить с цитированием

  #8  
Старый 16.10.2021, 16:21
kin4stat
Флудер
Регистрация: 06.11.2017
Сообщений: 2,759
С нами: 4483143

Репутация: 183


По умолчанию

UPDATE:

Добавлено создание пользовательских инстансов тасклистов.

Также теперь можно безопасно удалять таски из очереди
 
Ответить с цитированием

  #9  
Старый 17.10.2021, 19:05
legendabrn
Участник форума
Регистрация: 08.03.2019
Сообщений: 121
С нами: 3781678

Репутация: 113
По умолчанию

ktcoro_wait/include/ktcoro_wait.hpp at 62e51941db4635d70db367e881c93053fc58623a · kin4stat/ktcoro_wait

Contribute to kin4stat/ktcoro_wait development by creating an account on GitHub.

github.com


Зачем тут ссылка на ktwait?

upd: приведи пример удаления таска
 
Ответить с цитированием

  #10  
Старый 17.10.2021, 20:03
kin4stat
Флудер
Регистрация: 06.11.2017
Сообщений: 2,759
С нами: 4483143

Репутация: 183


По умолчанию

Цитата:
Сообщение от legendabrn  

Зачем тут ссылка на ktwait?
А как ты еще представляешь себе удаление таска?
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.