
Andrew
18.09.2017
21:33:49
для этого лучше какой-нибудь mailbox использовать

OMEN
18.09.2017
21:33:57
нее

Andrew
18.09.2017
21:34:04
в цикле его проверять и если там что-то есть, то выходить

OMEN
18.09.2017
21:34:28
в идеале таска засыпать должна, пока её снова не разбудят

Google

Andrew
18.09.2017
21:34:49
она будет засыпать при блокировке
тебе в эту блокировку нужно как-то попасть
например по маилбоксу

OMEN
18.09.2017
21:36:39
кстати, точняк, то что я искал
Спасибо, погнал читать)

Andrew
18.09.2017
21:37:59
ох, пожалуйста

Novi
19.09.2017
05:43:49
на демо сервере какой-то трабл, а наши ДевОпсы спят, у простого разраба нету доступа. Стоит ли натравить брутфорс атаку на 22 порт, чтобы получить пароль какого-нибудь известного мне юзера на демо сервере? скорее всего на перформанс такие вещи не должны аффектнутся

ViolentOr
19.09.2017
05:45:21
С большой вероятностью - не стоит.

shadowsoul
19.09.2017
05:45:32
у него похоже руки чешутся просто

ViolentOr
19.09.2017
05:46:21
А по итогу могут в другом месте почесать

shadowsoul
19.09.2017
05:47:34

ViolentOr
19.09.2017
05:54:49
Это зависит от корпоративных стандартов)

.
19.09.2017
06:22:12
Вангую, что это школяр

Google

.
19.09.2017
06:22:18
Гляньте-ка на статус

shadowsoul
19.09.2017
06:22:26
сразу в бан?
он ж выпрашивает

.
19.09.2017
06:22:42
Щас смс бомбера будет просить

Andrey
19.09.2017
06:30:43
а чо есть у кого смс бомбер?

shadowsoul
19.09.2017
06:32:00

Andrey
19.09.2017
06:32:10
вчера гибдд хотели меня в наркологию сдать на опыты
еле отболтался. что вон печати в загране. из финляндии еду

shadowsoul
19.09.2017
06:32:40

Darwin
19.09.2017
06:39:13
Мини-квест с призами от VolgaCTF. Нужно решить 4 задания категории web.
https://activity.finals.2017.volgactf.ru/
Стартует сегодня в 10:30 и заканчивается 21 сентября в полночь. Можно регистрироваться как команда, или в индивидуальном порядке. Первые решившие все задания получат призы!

Arctic
19.09.2017
06:57:22
Ребят, кто знает как два линукса по USB как псевдо Ethernet соединить?

shadowsoul
19.09.2017
06:57:56
без чипа - хуй там
либо если у одного есть юсб девайс порт - запустить модуль ядра
втыкая в хост второго

OMEN
19.09.2017
08:02:13
@aanper я призываю тебя. Мне не всё понятно с xTaskNotify*

Andrew
19.09.2017
08:06:01
Чувствую себя блять люцифером

OMEN
19.09.2017
08:18:16
Да я читаю доку и она мне говорит, что данный метод типа маил бокса нужен для уведомления задачи напрямую, мол это легковесная версия семафора. Я не докуриваю как через xTaskNotify отправить событие на разблокировку и блокировку.
Мне вчера какой то англоязычный чувак посоветовал завести volatile переменную, чтобы по этому флагу через if заходить в бблокировку

Andrew
19.09.2017
08:20:36
IPC на общей памяти это очень весело

Google

Andrew
19.09.2017
08:20:39
если ты в аду

OMEN
19.09.2017
08:20:43
Типа
If f_ready_lock:
Semaphore.wait()

Andrew
19.09.2017
08:21:35
вызываешь xTaskNotifyWait с portMAX_DELAY, он блокирует поток. Потом вызываешь xTaskNotify и отправляешь событие

OMEN
19.09.2017
08:21:41
Ничего плохого нет в ipc на общей памяти, у нас же 1 камень
Так это я догнал

Andrew
19.09.2017
08:22:37

OMEN
19.09.2017
08:22:58
А теперь разблокировать так, чтобы при следующей итерации цикла , при чтении уведомления, цикл не вешался

Andrew
19.09.2017
08:23:20
ну вызывай xTaskNotifyWait с нулем
и проверяй значение

OMEN
19.09.2017
08:24:29
лок/анлок?
Я чот тупым щас себя ощущаю. На pthread я бы это говно с пол тычка реализовал

Andrew
19.09.2017
08:27:29
во-первыйх, ты понимаешь, что есть параulTaskNotifyTake — xTaskNotifyGive и пара xTaskNotify — xTaskNotifyWait?

OMEN
19.09.2017
08:27:41
Да

Andrew
19.09.2017
08:27:44
первая работает как семафор, вторая позволяет передавать сообщения
ок
ulTaskNotifyTake и xTaskNotifyWait имеют парамер — xTicksToWait

OMEN
19.09.2017
08:28:14
Тэйком мы можем просто ждать пинка

Andrew
19.09.2017
08:28:21
если он равен 0, то вызов неблокирующий
и функция возвращает pdTRUE | pdFALSE

OMEN
19.09.2017
08:28:55
Да, я читал об этом

Google

OMEN
19.09.2017
08:29:32
Читаем, есть сообщение или оно уже было отправлено.

Andrew
19.09.2017
08:30:13
не отправлено а уже ожидается другим xTaskNotifyWait
а, тут вру
ну короче да, true если сообщение ты получил
ну вот, вызывай ее с нулем в цикле, если true, то уходи из цикла в блокировку, жди разблокировки (лучше отправлять при этом значение enum { BLOCK, UNBLOCK } и проверять тип сообщения)

OMEN
19.09.2017
08:34:16
Ааа, понял, читаешь сначала в неблокируемом режиме , а потом соответственно в блокированом.

Andrew
19.09.2017
08:34:48
ну да, у тебя в задачу два события приходят разных

Admin
ERROR: S client not available

Andrew
19.09.2017
08:34:54
на блокировку и на разблокировку
судя по твоему описанию

OMEN
19.09.2017
08:35:18
Да, все правильно

Andrew
19.09.2017
08:36:25
for(;;) {
xTaskNotifyWait(..., 0);
/* ... */
vTaskDelay(N);
}
это антипаттерн, лучше делать
for(;;) {
xTaskNotifyWait(..., N);
/* ... */
}
если что

OMEN
19.09.2017
08:37:28
А чем через шаред мемори ipc плоха?
Ведь ныне это очень модно, вон, atomic почти то же самое, кроме как на уровне самого железа защита от перезаписи происходит

Andrew
19.09.2017
08:40:00
тем, что надо понимать, что ты делаешь, и некоторые вещи довольно запарно делать правильно (типа например надо одну переменную на установку, другу на сброс и т.д.). + для атомарности некоторые операции придется делать в критических секциях. Ну и самое плохое, что ты не можешь соптимизировать шедулинг. Шаред мемори это почти всегда поллинг, а мог бы поспать или хотя бы не грузить проц херней
фриртоси про атомик расскажи
IPC разное бывает. В твоем случае это синхронизация и управление из одного потока в другой — тут нужно использовать средства ОСи. Если бы ты просто данные асинхронно передавал, то можно и на шаре (хотя опять же есть очередь)

OMEN
19.09.2017
08:43:15
Ну то, что я предлагал это чтение состояния флага, и при его наличии заходить в блокировку и ожидать пробуждение, а не тупо в цикле барахтаться. Тем более чтение и установка проходят за такт.

Andrew
19.09.2017
08:43:42
так а между чтениями состояния флага ты что делаешь?

Google

Andrew
19.09.2017
08:43:58
я чота сильно сомневаюсь, что ты там хуяришь биткоины и у тебя загрузка проца 100%

OMEN
19.09.2017
08:46:15
Ну я прочел флаг, если 0 , то иду слать данные / дрыгать копытом, если 1 торможу таск в том же ulTaskNotifyTake
Я пока изучаю фриртос , поэтому ставлю такие пизданутые задачи


Andrew
19.09.2017
08:54:49
в реальной жизни таски не занимают 100% проца все время, поэтому там появляется ебанутый код вида
while(flag != BLOCK) {
vTaskDelay(100/portTICK_PERIOD_MS);
}
ledOn();
ебанутый, потому что это постоянный компромисс «сделаю задержку больше, проц будет спать, но задержка реакции на установку флага увеличится, сделаю задержку меньше, реакция будет быстрой, но проц будет постоянно дрочиться»
допустим, ты мигаешь зеленым светодиодом раз в секунду и тебе нужно прервать этот процесс и включить красный в случае ошибки.
тогда
green_led = 1;
for(;;) {
if(xTaskNotifyWait(..., GREEN_PERIOD/portTICK_PERIOD_MS) == pdTrue) break;
green_led ^= 1;
}
green_led = 0;
red_led = 1;
xTaskNotifyWait(..., portMAX_delay)
намного лучше чем
green_led = 1;
for(;;) {
if(xTaskNotifyWait(..., 0) == pdTrue) break;
green_led ^= 1;
vTaskDelay(GREEN_PERIOD/portTICK_PERIOD_MS);
}
green_led = 0;
red_led = 1;
xTaskNotifyWait(..., portMAX_delay)
потому что когда ты запустил vTaskDelay, ты уже ничего не можешь с ней сделать
и это никак не решается IPC на шаред мемори
ну и на самом деле в реальных задачах шаред мемори почти всегда обрастает блокировками-синхронизациями вида «а тот процесс еще не положил команду в буфер, надо ждать», «буфер заполнился, жди пока из него заберут данные». И это опять не решается нормально на шареде. И вместо изобретания велосипеда, лучше взять TaskNotify или Queue


Mortesan
19.09.2017
08:57:48
Ребят, а кто-нибудь работает в сфере тестирования по?

Andrew
19.09.2017
08:58:10
ну косвенно да
а какой язык/стек?

OMEN
19.09.2017
08:58:47
Ща я припиздохаю с ноутом покажу чо я хочу замутить

Andrew
19.09.2017
08:59:31

OMEN
19.09.2017
09:00:45
У меня всегда печеньки в столе есть)

Andrew
19.09.2017
09:01:00
хуясе
нарния?
бесконечные печеньки в столе
embedded cookies

ViolentOr
19.09.2017
09:05:48
Ну он узнал что тестеры существуют

Igor
19.09.2017
09:17:25