
Arseny
27.06.2017
07:37:35
Ребята, помогите с многопточностью. Многие, наверное, слышали о блогере Bo Qian https://www.youtube.com/channel/UCEOGtxYTB6vo6MQ-WQ9W_nQ
Так вот, в его примере с data race, у него есть вывод в файл с родительского и дочернего потока и происходит это по очереди. Когда я запускаю его примеры на своей тачке, у меня сначала выводится дочерний поток, потом главный родительский
''class Fctor {
ofstream& m_str;
public:
Fctor(ofstream& s):m_str(s) {} // Reference member can only be initialized
void operator()() {
for (int i=0; i>-100; i--)
m_str « "from t1: " « i « endl;
}
};
int main() {
cout « "Hollo Bo" « endl;
ofstream f;
f.open("log.txt");
Fctor fctor(f);
std::thread t1(fctor);
for (int i=0; i<100; i++)
f « "from main: " « i « endl;
t1.join();
f.close();
return 0;
}''
Вопрос в том, что я бы хотел увидеть, что потоки действительно работают параллельно, но как это настроить - непонятно


Ruslan
27.06.2017
07:43:36
по идее они не могут идеально паралельно работать
их исполнение может завесеть от того что происходит в ос

Google

Ruslan
27.06.2017
07:45:18
просто создай пять потоков и посмотри как они будут печатать числа

Arseny
27.06.2017
07:45:55
ок, спасибо, попробую

Pepe
27.06.2017
07:57:24

Vladislav
27.06.2017
08:02:44

Pepe
27.06.2017
08:03:44
https://stackoverflow.com/questions/898489/what-programming-languages-are-context-free

Cargeh
27.06.2017
08:08:06
Всем привет. Занимался кто-нибудь memory reading в играх? Интересует преимущественно WoW.

Pepe
27.06.2017
08:09:00
И вот тут конкретно про С++
https://www.quora.com/Is-all-programming-language-grammar-context-free-or-nearly-context-free

Vladislav
27.06.2017
08:11:27

Alex Фэils?︙
27.06.2017
08:17:46
там от сайзоф лонг большн зависит, чем от архитектуры

Ruslan
27.06.2017
08:22:02
проблема граматики пришла от С

Google

Ruslan
27.06.2017
08:22:18
так как С писался из потребностей производства
но С запихнули до LAL(1)
а насчет с++ хз

Vladislav
27.06.2017
08:24:39
не, проблема грамматики из-за использования угловых скобок для шаблонов

Дед Пегас
27.06.2017
08:25:15
Убрать стримы да и всё.
Или лучше переделать C++ на ML.
Хм, и правда, как бы выглядел C++ в ML?
Сам такой.

Antony
27.06.2017
08:28:03

Дед Пегас
27.06.2017
08:29:00
main :: int = {
let vec = {1, 2, 3} :: vector<int>
for x& : vec {
cout x
endl
}
return 0 :: int
}
9_9

Ruslan
27.06.2017
08:29:58
если так, все б уже решили
не, проблема грамматики из-за использования угловых скобок для шаблонов
попробуйте еще написать с++ на лиспе

Antony
27.06.2017
08:32:34
новые предложения по улучшению С++ выложили: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/#mailing2017-06

Vladislav
27.06.2017
08:33:35

Alex Фэils?︙
27.06.2017
08:47:49

Igor
27.06.2017
08:55:10

Evgeniy
27.06.2017
09:35:05
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0238r1.html больше auto богу auto

Google

Alexander
27.06.2017
09:38:06
я что-то не нашёл пропозала про ЦШВУ-ШТЕ
ой, про wide-int

Evgeniy
27.06.2017
09:38:42
можешь поискать по фамилии)

Александр
27.06.2017
09:39:00
есть оно там

Anatoly
27.06.2017
09:39:07
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0539r0.html

Alexander
27.06.2017
09:39:25
found
По Антону легко искать)

Arseny
27.06.2017
09:40:22

Berkus
27.06.2017
10:07:42
wtf
pattern-matching, bitches

Igor
27.06.2017
10:19:00

Alex Фэils?︙
27.06.2017
10:19:35
Это тож

Berkus
27.06.2017
10:25:16
а я запостил вчера линк на статью? вроде да
там перечислены разные способы утечек в дроиде

Alex Фэils?︙
27.06.2017
10:33:31

Gleb
27.06.2017
11:09:17
/me

FailsBot
27.06.2017
11:09:18
Gleb

Berkus
27.06.2017
11:09:54
^ win

Anastasia
27.06.2017
11:17:40
Пцсс, запилили материал про тестовые задания для разработчиков. Норм - не норм? Баян - не баян? Если не норм, то что?
https://goo.gl/4WnFb8

Admin
ERROR: S client not available

Google

Alexander
27.06.2017
11:19:08

Anastasia
27.06.2017
11:23:47
Не, я только гифки умею клепать ;) а вообще спасибо

Berkus
27.06.2017
11:24:07
не завезли?

Anastasia
27.06.2017
11:27:06
Что вычитал? Можешь скинуть абзац, где нашёл ошибку?

Berkus
27.06.2017
11:32:08
> Пцсс, запилили материал про тестовые задания для разработчиков. Норм - не норм? Баян - не баян? Если не норм, то что?
вот абзац

Владислав
27.06.2017
11:36:17
mf doom

Anastasia
27.06.2017
11:36:20
Ясно, но не по делу, минус тебе ;)

Berkus
27.06.2017
11:40:19

Group Butler [beta]
27.06.2017
11:40:20
Anastasia has been warned (1/5)

Berkus
27.06.2017
11:40:35
тебе тоже, раз уж ты русский язык не умеешь

Roman
27.06.2017
11:44:33
я ещё раз со своим вопросом по асинхронному тестированию:
вот есть тест кейс, нужно убедиться что первый поток выполнился, после чего выполнился и второй, но failure поток выполниться в данном случае не должен. Запускаются данные потоки асинхронно, т.е. control flow нужно заблокировать в конце тестовой функции
void ExampleTest::verifyAttach() {
streams->create([](
const StreamHandle& handle,
const QVariant& data
) {
// ensure this is called
handle.close("testdata");
})
->attach([](
const StreamHandle& handle,
const QVariant& data
) {
// ensure this is called and data is correct
QCOMPARE(data, "testdata");
handle.close();
});
->failure([](
const StreamHandle& handle,
const QVariant& error
) {
// ensure this is never called
});
// control flow must be locked here until all async code is done
}
мне интересно как бы это реализовать наиболее элегантно, как бы вы реализовали?


Berkus
27.06.2017
11:45:23
> т.е. control flow нужно заблокировать в конце тестовой функции
я тебе вчера вечером писал именно про это

Roman
27.06.2017
11:46:12

Berkus
27.06.2017
11:46:27
std::future нельзя использовать, оно broken by design (by committee)

Roman
27.06.2017
11:46:52
std::promise на замену?

Anatoly
27.06.2017
11:48:13
future - это результат в будущем, его нельзя установить, вызывай thread с промисом и т.п. и устанавливай значения промиса
std::promise<int> p;
std::future<int> f = p.get_future();
std::thread( [](std::promise<int>& p){ p.set_value(9); },
std::ref(p) ).detach();
f.wait()

Roman
27.06.2017
11:48:57
надо попробовать

Google

Roman
27.06.2017
11:49:34
мда, правда усложняет код теста

Anatoly
27.06.2017
11:50:40
std::async еще посмотри
он возвращает std::future

Berkus
27.06.2017
11:51:07
хмм, поясни плиз
https://github.com/facebook/folly/blob/master/folly/futures/README.md ну вот это несколько более композабельно
а value через промис ставится, из него фьючер вытаскивается и возвращается

Kirill
27.06.2017
11:51:43
по поводу тестовых заданий напомнило доклад
https://www.youtube.com/watch?v=zUVQhcu32rg
там нужно было человеку из строки выпилить подстроку и заменить. ну он заюзал готовый фреймворк, написал 2 строчки кода, отправил и получил работу)