Size: a a a

2020 June 06

CD

Constantine Drozdov in pro.cxx
vehlwn
В чем смысла? В тред локалках? В длинной арифметике? В файловой системе и многоптоточных примитивах на с++11?
тред локалки очень сложно притащить без компилятора)
источник

v

vehlwn in pro.cxx
Aλexander Syrotenko
Ну для компиляторов нету смысла в бусте.
Если твой компелятор подерживает тред локалки, то смысла в boost::thread_specific_ptr нет.
источник

AS

Aλexander Syrotenko in pro.cxx
vehlwn
Я еще не говорил про сеть.
источник

v

vehlwn in pro.cxx
Или выбираем росо, где есть и нттр сервер, и клиент.
источник

R

Ruben in pro.cxx
vehlwn
boost::shared_mutex
а эта штука кстати умеет работать между разными процессами? И можно получить один и тот же мьютекс в двух независимых процессах?
источник

AS

Aλexander Syrotenko in pro.cxx
vehlwn
Или выбираем росо, где есть и нттр сервер, и клиент.
Кстати, хорошая штука.
источник

AS

Aλexander Syrotenko in pro.cxx
Данке
источник

v

vehlwn in pro.cxx
А если в моем холодильнике нет вифи? Мне выбирать урезанную стандартную либу?
источник

v

vehlwn in pro.cxx
// "\r\n\r\n" indicates the end of the header and beginning of body,

Парсить нттр конечным автоматом мы не бросим. Есть что-то более высокоуровневое, как
Poco::Net::HTTPRequestHandler*
   createRequestHandler(const Poco::Net::HTTPServerRequest& request)
{
   std::cout << "getMethod = " << request.getMethod() << '\n';
   if(request.getURI() == "/")
       return new TimeRequestHandler(_format);
   else if(request.getURI() == "/hello")
       return new HelloRequestHandler();
   else
       return 0;
}
?
источник

R

Ruben in pro.cxx
Задача у меня такая: есть приложение сенсора, которое генерит аудио и видео поток. Поток склдывается в кольцевой буфер в shared_memory. Различные приложения (вот прям разные экзешники) могут запускаться, подключаться через мою либу к этому буферу, и брать оттуда медиа поток. То есть у меня не треды, у меня процессы. Да еще, мьютекс должен быть именованный, чтобы можно было получить его по какому-то ID из процессов, не связанных друг с другом (не форкнутых)
источник

AS

Aλexander Syrotenko in pro.cxx
vehlwn
// "\r\n\r\n" indicates the end of the header and beginning of body,

Парсить нттр конечным автоматом мы не бросим. Есть что-то более высокоуровневое, как
Poco::Net::HTTPRequestHandler*
   createRequestHandler(const Poco::Net::HTTPServerRequest& request)
{
   std::cout << "getMethod = " << request.getMethod() << '\n';
   if(request.getURI() == "/")
       return new TimeRequestHandler(_format);
   else if(request.getURI() == "/hello")
       return new HelloRequestHandler();
   else
       return 0;
}
?
Даже это выглядит не очень ..
источник

R

Ruben in pro.cxx
типа процесс создает мьютекс:
m = mutex_init("MyMutexID");
ридер лочит:
m.shared_lock();
врайтер лочит:
m.lock();
источник

VO

Vyacheslav Olkhovche... in pro.cxx
vehlwn
Есть только две причины отсутствия буста:
а) ограничения лицензии;
б) ограничение размера ехешника на холодильнике;
в) в бусте нет необходимых функций.
есть вариант на тикетах, когда всего участников меньше 256 и допустимы спинлоки
источник

DS

Dmitry Sokolov in pro.cxx
Ruben
типа процесс создает мьютекс:
m = mutex_init("MyMutexID");
ридер лочит:
m.shared_lock();
врайтер лочит:
m.lock();
В любом случае глянуть boost interprocess, даже если сам boost нельзя можно подсмотреть реализацию примитивов.
источник

R

Ruben in pro.cxx
ок
источник

VO

Vyacheslav Olkhovche... in pro.cxx
Ruben
типа процесс создает мьютекс:
m = mutex_init("MyMutexID");
ридер лочит:
m.shared_lock();
врайтер лочит:
m.lock();
источник

R

Ruben in pro.cxx
интересненько
источник

R

Ruben in pro.cxx
еще. Может кто-то посоветует, как достоверно выяснить на стороне потребителя, что в кольцевом буфере произошла перезапись текущего кадра, то есть потребитель потерял текущую позицию и надо переходить на актуальную позицию?
источник

R

Ruben in pro.cxx
То есть если он "отстал от поезда"
источник

R

Ruben in pro.cxx
Я эту проблему решаю счетчиком: у каждого кадра есть номер, в состоянии буфера сохраняется номер последнего актуального кадра.
источник