hkaiser changed the topic of #ste||ar to: STE||AR: Systems Technology, Emergent Parallelism, and Algorithm Research | stellar.cct.lsu.edu | HPX: A cure for performance impaired parallel applications | github.com/STEllAR-GROUP/hpx | Buildbot: http://rostam.cct.lsu.edu/ | Log: http://irclog.cct.lsu.edu/ | GSoC2018: https://wp.me/p4pxJf-k1
anushi has joined #ste||ar
eschnett has joined #ste||ar
parsa has quit [Quit: Zzzzzzzzzzzz]
parsa has joined #ste||ar
K-ballo has quit [Quit: K-ballo]
parsa has quit [Quit: Zzzzzzzzzzzz]
anushi has quit [Remote host closed the connection]
anushi has joined #ste||ar
parsa has joined #ste||ar
eschnett has quit [Quit: eschnett]
parsa has quit [Quit: Zzzzzzzzzzzz]
anushi has quit [Remote host closed the connection]
anushi has joined #ste||ar
parsa has joined #ste||ar
hkaiser has quit [Quit: bye]
anushi has quit [Remote host closed the connection]
<github>
hpx/master 9a0d280 Mikael Simberg: Merge pull request #3394 from STEllAR-GROUP/msimberg-patch-1...
jakub_golinowski has joined #ste||ar
<jakub_golinowski>
ms[m]1, yt?
<ms[m]1>
jakub_golinowski: here
<jakub_golinowski>
So I was wondering about the proper way of "threading" in hpx
<jakub_golinowski>
in the MartyCam there are 2 let say worker threads that are running all the time
<jakub_golinowski>
in the webcam example I dealt with that by scheduling a future to a function with a while(!finished){} loop
<jakub_golinowski>
so should I approach it in the same way here?
daissgr1 has quit [Quit: WeeChat 1.9.1]
<ms[m]1>
jakub_golinowski: so there are probably many ways to do this
<ms[m]1>
but the most important thing is that webcam capture and image processing are on different pools, and this you've already done
<ms[m]1>
now for the next part it depends a bit how fancy you want to get
<jakub_golinowski>
Well for now I would like to have a working example with Qt
<ms[m]1>
then try to go for the same way with Qt first
<ms[m]1>
I'm thinking it could be possible to let the image capture and processing go out of sync, and for example change the frame rate if the processing starts lagging behind
<ms[m]1>
but it can quickly get complicated
<jakub_golinowski>
ok, thanks
<jakub_golinowski>
ms[m]1, is there an example with making future with the non-static member fucntion?
<ms[m]1>
jakub_golinowski: hmm, not sure, but something like hpx::async(class_name::function_name, this or instance_name) should work
<jakub_golinowski>
so I tried different configurations and read a bit on the net and still no succes
<ms[m]1>
long shot, can you try removing the angle brackets after async
<jakub_golinowski>
ms[m]1, hmm the error is the same
<jakub_golinowski>
but I was wondering what was the <> here for
<ms[m]1>
it's for template parameters but when there's nothing there the compiler deduces the parameters for you
<ms[m]1>
okay, I'm clueless, so try step by step: empty lambda, empty lambda capturing this
<jakub_golinowski>
ms[m]1, hmm seeem not to be able to call any lambda
<jakub_golinowski>
even with just std::cout
<ms[m]1>
not even hpx::async([](){})?
<jakub_golinowski>
ms[m]1, nope, not even that
<ms[m]1>
uhh...
<jakub_golinowski>
for some reason compiler interprets such a lambda as:
<jakub_golinowski>
error: no matching function for call to ‘async(MartyCam::createCaptureThread(int, cv::Size&, int, const string&, hpx::threads::executors::pool_executor)::<lambda()>)’
<jakub_golinowski>
hpx::async([](){});
<jakub_golinowski>
Is there some restriction as to where the async can be used?
<jakub_golinowski>
For example forbidden in constructors or sth like this?
<ms[m]1>
ugh, can you include hpx/lcos/async?
<ms[m]1>
or hpx/include/async
<jakub_golinowski>
:/
<ms[m]1>
does it work?
<jakub_golinowski>
hpx::async([](){}); this went through
<ms[m]1>
okay, I think you were getting the actionized overloads of hpx::async, it should work now
<ms[m]1>
I think I've done the same once before... it's too obvious of a problem
<jakub_golinowski>
it seems to work -.- sorry for that
<jakub_golinowski>
i included the lcos/futures and thought - yeah it is enough
<jakub_golinowski>
Does anybody have an idea why the commend out part of this small example does not work: https://pastebin.com/RrU8ePpy?
aserio has quit [Ping timeout: 276 seconds]
aserio1 is now known as aserio
<K-ballo>
most vexing parse, ImageQueue imageQueue(); declares a function, not a variable
<K-ballo>
compiler should be warning?
<K-ballo>
(actually just vexing parse, not the most vexing parse)
<jakub_golinowski>
K-ballo, coul dyou elaborate
<jakub_golinowski>
a wait
<K-ballo>
ImageQueue imageQueue(); declares a function called `imageQueue` which takes no arguments and returns an `ImageQueue`
<jakub_golinowski>
K-ballo, oh that is not what I want
<K-ballo>
I can imagine
<K-ballo>
you want either ImageQueue imageQueue{}; or ImageQueue imageQueue; or even ImageQueue imageQueue= ImageQueue(); depending on the kind of type you hvae
<jakub_golinowski>
So high-level I want to have the spsc_queue from boost::lockfree
<jakub_golinowski>
most preferably inside a shared pointer
<jakub_golinowski>
but somehow I could not achieve it :/