Executors for C++ - A Long Story

Video thumbnail (Frame 0) Video thumbnail (Frame 13458) Video thumbnail (Frame 26816) Video thumbnail (Frame 40174) Video thumbnail (Frame 53532) Video thumbnail (Frame 66890) Video thumbnail (Frame 80248) Video thumbnail (Frame 93601)
Video in TIB AV-Portal: Executors for C++ - A Long Story

Formal Metadata

Executors for C++ - A Long Story
Struggling for a Base Concurrency Building Block
Alternative Title
New Executors for C++
Title of Series
CC Attribution - NonCommercial - ShareAlike 3.0 Unported:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal and non-commercial purpose as long as the work is attributed to the author in the manner specified by the author or licensor and the work or content is shared also in adapted form only under the conditions of this license.
Release Date

Content Metadata

Subject Area
Executors (or schedulers) will be a base building block in C++ for asynchronous and parallel work. Executors for asynchronisity are somehow similar to allocators for containers: They are a very important implementation aspect, but for most people they are hidden behind the scene. The C++ committee faces three more or less competing proposals for executors and the hope is to have an idea how to align them into a single direction by the time of NDC Oslo 2016. Also new in the game are coroutines, which should play together with executors smoothly. This talk will present the differnces between the proposals, their common underlying mechanisms and what glue might combine the executor proposals and the coroutine mechanisms.
Standard deviation Multiplication sign File format Function (mathematics) Parallel port Disk read-and-write head Mereology Variable (mathematics) Order (biology) Mechanism design Different (Kate Ryan album) Speichermodell Abstraction Social class Exception handling Computer virus Concurrency (computer science) Parallel port Mereology Control flow Variable (mathematics) Thread (computing) Mechanism design Phase transition Order (biology) output Task (computing) Directed graph Digital filter Game controller Algorithm Power (physics) Revision control Goodness of fit Speicherbereinigung Energy level Message passing Task (computing) Form (programming) Condition number Operations research Focus (optics) Parallel computing Weight Generic programming Inclusion map Error message Personal digital assistant Function (mathematics) String (computer science) Revision control Atomic number Synchronization Object (grammar) Table (information) Extension (kinesiology)
Context awareness Execution unit Computer programming Virtual reality Computer configuration Different (Kate Ryan album) Special functions Abstraction Physical system Normal-form game Interface (computing) Mereology Category of being Latent heat Message passing Process (computing) Oval Mathematical singularity Analytic continuation Directed graph Point (geometry) Empennage Template (C++) Number Boundary value problem Energy level Directed set Form (programming) Default (computer science) Overhead (computing) Code Counting Line (geometry) Binary file System call Word Loop (music) Algebraic closure Software Personal digital assistant Function (mathematics) Social class System call State of matter Ferry Corsten Code Weight Multiplication sign Decision theory 1 (number) Sheaf (mathematics) Set (mathematics) Interface (computing) Mereology Order (biology) Mathematics Algebraic closure Cuboid Process (computing) Information Endliche Modelltheorie Extension (kinesiology) Area Graphics tablet Scripting language Computer virus Concentric Concurrency (computer science) Real number Point (geometry) Token ring Parallel port Virtualization Thread (computing) Mechanism design Googol Configuration space output Convex hull Task (computing) Physical system Metre Digital filter Functional (mathematics) Implementation Overhead (computing) Link (knot theory) Token ring Power (physics) Causality Software testing output Analytic continuation Loop (music) Task (computing) Default (computer science) Installation art Context awareness Serial port Inheritance (object-oriented programming) Event horizon Synchronization Object (grammar)
Concurrency (computer science) Ferry Corsten State of matter Multiplication sign 1 (number) Set (mathematics) Water vapor Parameter (computer programming) Interface (computing) Parallel port Mereology Web 2.0 Mechanism design Very-high-bit-rate digital subscriber line Different (Kate Ryan album) Synchronization Information Process (computing) Abstraction Social class Concurrency (computer science) Closed set Point (geometry) Web page Token ring Interface (computing) Lattice (order) Thread (computing) Mechanism design Radical (chemistry) Type theory Category of being Latent heat Arithmetic mean Googol Phase transition Normal (geometry) Self-organization Analytic continuation Task (computing) Point (geometry) Slide rule Digital filter Functional (mathematics) Implementation Overhead (computing) Algorithm Random matrix Event horizon Machine vision 2 (number) Template (C++) Power (physics) Number Revision control Voting Latent heat Flow separation Causality Googol Authorization Factory (trading post) Directed set Divisor output Implementation Analytic continuation Task (computing) Form (programming) Focus (optics) Inheritance (object-oriented programming) Weight Physical law Computer network Line (geometry) Semantics (computer science) Evolute System call Template (C++) Voting Event horizon Software Personal digital assistant
Standard deviation Context awareness Group action System call Code Multiplication sign Direction (geometry) Set (mathematics) Real-time operating system Voltmeter Function (mathematics) Open set Parallel port Interface (computing) Computer programming Programmer (hardware) Mechanism design Casting (performing arts) Type theory Different (Kate Ryan album) Network socket Information Library (computing) Physical system Boss Corporation Meta element Concurrency (computer science) Point (geometry) Complex (psychology) Interface (computing) Bit Mereology Lattice (order) Thread (computing) Hand fan Mechanism design Latent heat Message passing Oval Different (Kate Ryan album) Interrupt <Informatik> output Analytic continuation Arithmetic progression Task (computing) Electric current Spacetime Data buffer Point (geometry) Digital filter Implementation Functional (mathematics) Algorithm Connectivity (graph theory) Protein Rule of inference Number Power (physics) Voting Latent heat Goodness of fit Causality Googol Queue (abstract data type) Energy level Lie group Implementation Analytic continuation Loop (music) Task (computing) Form (programming) Condition number Domain name Context awareness Information Parallel computing Computer program Heat transfer Computer network Coroutine Line (geometry) Cartesian coordinate system System call Component-based software engineering Uniform resource locator Event horizon Resource allocation Wechselseitiger Ausschluss Personal digital assistant Function (mathematics) Network socket String (computer science) Synchronization Statement (computer science) Object (grammar)
and now we have further along star eweida after lunch which might be not such a good idea but that's what you got. i stopped watching all because it is a long story. so. it all began on a very blind stay in two thousand and seven and how i cannot. the upside to the can be no of the fastest committee asked all the heads of delegation which more or less what was said that the country's inside of the. the committee asked for lunch. just at the sea. and for it was a pretty nice day was a good me that it was a very hot discussion on two topics garbage collection which was one part and can council which was the other party and that was two thousand and seven and we we still had the name. and as the fastest o x four the news the past are not so that men its two years to go and we said ok we cannot put too much into the fast as oryx. so the outcome of this discussion walls in c. class class now ex what we came our x b. which is the fastest eleven. our focus on crown see we had the mentally model we had atomic of away shuns we had sweats locks and condition variables all very low level or and asynchronous future value as which was futures but knows that pools no time. asked launching and know it odd docs well actually we got some task launching into it that was a sink or whether it was a good idea or not i'm still not really sure we got to be the latter looks with a a two thousand and fourteen for the time version. and the and time version will be in the past last seventeen. and we still don't have spread fools. and this is swat this is about pools which is more or less the stand outs as a curator. so what is so hot it while what do we have to do well as it turned out as a single week has something that might be a problem. those a few who were my told yesterday in know that the with those to a sings we don't get any can count see this is for that is that the the stock of. a future normally doesn't look except when it comes from a future of harmonising and if it comes from a single then the east are the blokes on the future to be wary. well and this is what happens years so we don't capture that future so it goes out of called immediately this means that it will wait until the future or was either finished on as i told you yesterday doing nothing at all. it's also an option. but if you don't get the further than you will get hell of a world without any are you can count see which is not really a problem while low a new mark with a quiet spot. do you have to be teach than that as that should be possible that we have problem is that bad. future behaves differently the destructive future behaves differently. for future just coming form a promise of some wells and few just coming from an amazing. and this is another really good in generic programming. so we have one time that behaves differently depending on where the object came form and there's not a good idea it is goods that a future that the to stop the future of locks on this question is it came from a sink the reason is while you don't look. then it will just gone on and on and on and then gone on. and you have no idea how long and have absolutely no control of it. so the mites tax objects that don't exist anymore. it might even go to the end of may in and out of than very strange things will happen so it is good that it blocks we just shouldn't have had the future for all. we would need some other mechanism to stop their future. and this is where the executive comes in this was one what evasion for those thinking on more about the threat was executed and so on. another thing us what i also showed yesterday the pipelines a for those who ran in my talks yesterday just a very brief we care. vizio it. unix tie a very you just the put the output from one task as the input were of the next task. there are still to function just stakes in objects and put out subject without objects. and you put them all together are and. one it on some swine flu. so the interesting thing is you want to feel its data strathclyde pipeline on top of a threat to hear us another example for pipelines which is a are even more interesting because in this case the second step. there once in power the island sweet different times and three difference that's so this is a simulator restaurant and do we have always coming in we have is sweet chefs who cook the all those. therefore weight has to do in the order to she is the to the table everything is finished when we ended to be richest need this and the hospital because the contest a parallel task at the end in this version of the pipeline but again. if the audience on us that fool. so we need to define the why in the phase fall something to one tostes on to build things like a pipeline on top of it. another thing is a hell isn't t s which defiance all the standard them while most of the said that although the sense that. to an possibly in power and of course if you and them in parallel you need something where you can one of them on. which again. might be executed. so what otherwise requirements from this while we need to land haas and we need to control some of the lifetime as specs so we need to be able to shut down us that poor and wait until the last time nasa on that's got put has either finish. wish all never started which is also no. so our wow that's and seemed to be too difficult so.
oh we got a composer. and that proposal was the heirs asked the old. object oriented model we had a base class called executor within the purely abstract interface that and the main thing in their interface is the fed has a function at it doesn't return anything no future for example. and that it just takes a function that asked in return and sing anything either and doesn't take any car meters. so was at you just put in utah's on the executive the and the executors of them as possible for whining that cost at some time now. and there was another. function very good as ok how many tasks are still there are others are waiting to be started. but that's essentially not much more it was not exactly the origin of the face but very much like it. and then we had another thing that the fault execute of there was some object in the side of the system. and there that just was able to and sings like a sink or whatever are high and the un to the responsible for starting that are shutting down that their that was the likes of doubt it's not something you can. a it's just there. and then of course also some we as a concrete the executors of course is that poor. pounds that poor the ceiling execute or which once all the time last one i often the other. so no compound think it's fantastic but it wants can cause and to yourself that you started that's you execute or which is not the case for the loop executor it's what i've come to the low packs a decade and a minute then they in line. executor that just started the function or wide of a venue edited and the ex function only with her and when that function was finished that was stopped later because it was decided to carry never won the eight function to block on the function free to finish. and so let's execute of which just started a new threat for each haas that it was given. so the look in the loop executor a mall s. said behaved like this he was executed was so once light only and one task every other. darts it didn't start a new set for that like a seal executed but youth he owns that so you had to. call for example the loop function and then it will run all the task that was given as were eight. to that executor and there of course you could add more functions a more tasks a while you were. doing all those other tasks and the ex is that you had to call a special function called make a loop exit. another option was to one to just one one task all to end all cute clothes us in that case you were not allowed to add any more closures while you were running that said. so this is essentially gives you this year guarantee this you execute the actually runs concurrently to yourself so it doesn't really gives you the here and. and there from the other was a for those who were my own might hold yesterday that pool was just gives you the parallel guarantee because it's pounded see as a. they're also only a power going to be because it's going to be celia but it's not this year guarantee loop executed as years go and see a line executed would also be the year guarantee and get executed would be the current twenty. so that essentially all that. and we could easily implement a thing on top of that. we could first the white annual dollars policy launch executor with guns on the default executor. maybe we are still not quite clear why you might even. one of the the fall policy a sink on the ford executor. in this act silly noticeable a pity because in that case as it runs on a sweat pull you don't really get a new threat so you notice with a slight local storage that it's not in its initial state but it probably wouldn't wake much coat and but of course. still would have to block on the future distract people because they are actually programs that will rely on their head and want to make sure that after his truck has a future that task doesn't catch anything anymore inside of it so we still need that looking the area but if you don't want that look. king behavior you just use a launch executors policy and everything would be fine. so that he struck the wooden block. and you could also create your own pool and starts of a task just on the pool. nothing very difficult for the pad lions is actually pretty easy to implement that high plants on top of exactly the interface we actually had an implementation by google which did that and my example area once very nice on their so nope. problem is that one so i was in find problems also the proposal was accepted the in february two years ago. by the bias you won the conn see a study go into the concoction c.t.'s one. well and then there's this cause installed. i. several people who were not to he had previous that the extra base clause in the face of such a function this is a pretty heavy thing and if you only one very small tasks on that poorer that versa function over had is actually. quite a lot. so there are also other people didn't like that apart from the fact that most of the process these days is a template based any way so what other people would have liked sons see more like a template in the face of it. raul the good thing about the extra base classes can weather the a.b.i. boundaries so you can has a lively that provides you your executed implementation like it's a pool and then you have. europe tight line that is in a completely different configuration unit and dead doesn't need to be the campania to execute implementation changes which has to be done it's a template. on the executor. but as i said so a lot of people around it paid with that approach and then just new requirements came in which were not the leader then you.
yes for example the proposed extension to future says the continuations that then i'm very you want to harm them. and the point here is exactly a half the for them that things continuation might be very very small you don't so you don't really want the overhead or for virtual function court. i am than and that is my favorite examples of it because sigh. a lot in the embedded was. there you just test things like priorities. so let's use is that high line for something that is actually pretty common embedded system so you have several inputs and get take them in the nose inputs you were the day and then you stall them them somewhere or transmitted a word. now the line or whatever. that is pretty nice it said so they're in this case we have one in put their needs a high priority because it has a very small bar for so whenever there in the commons ok something is available we have to pose as of that. very quickly. so nice ok so i just say ok this input one function. gets a high priority so are the ones on a different execute are then all the others so i have one executor with a high priority. and the other execute the us with lower with normal priority. which is a very nice thing however are hollow pass the high line in fermentation know from the task it's given. which executed the use so how does my piven implementation know that it shouldn't stop this in food one. on this pool been on its own executor. and the ocean interfaces as was absolutely no way for that. and we also had a zero. who had thought of those days ago. good so this is a well lot of people who said we want to stay zero to the start of august and. it's cowardly are at stake for the networking to us so. it will quite probably be sustained of ice. but then again you have a lot of small continuations and you want to run them more or less just as a corporate you don't want any overhead form future us you don't want any ago i had from switching threats of things like that your job. asked who want to run. them as called x.. however that is one option another option is you actually want to on the model t. for and executed with. some other properties for example so leave you need some additional interface hear it. and as. normally a zeal is called waited so it the ones on a single threat but that doesn't need to be the case you could actually use this compound sifuentes can count see like my example. data concentrator you could test some high continuations that had a higher priority and to an honor the on an executor with a higher priority. and that definitely wanted to an all kind of user defined executors where you could a decision of properties. and so a c.e.o. came with its own executive couples. which is very high level a than the takes quite a lot i have to understand everything that is going on they are but it's slow others have a lot of experience and the school offers a work in it for very long time and use it in a lot of systems. and that is why it is so complex because sometimes you just need that complex. so we got a bunch of new could curb proposal that's the won this the executor from a sealed by chris call off and the numbers i get here are the new latest numbers of the the origin of proposals said. for now most part the they got to act aids and the numbers idea if you're always come as the link to the documents come in the reference section and there were the age of proposes that is based on a simple way asian between the. the execution context. and the executor. and the executors just a very thin who have power over something that lives in the execution context but that's where power could end all kinds of things for example or and that is what i actually did. i couldn't pull why on top of an execution context and execute which just the waste the priority of mice that so i went on in the execution contacts that gave me new threats and then i took that threat to the native handler. and just waste the priority and that one so that way i had my we're time executor. and. then we had some concrete executors of the system execute which was not the default executor but like this could execute or so it just the start a new threat for each pass a stand which is very much like a seal execute are a threat to again with a bonus. the that poor and the loop execute which is very much like the loop execute that the other proposal the original proposal had but it always ended its end. no either or seven there was no task any more inside of his execution so you didn't need that extra function to exit you. and this is actually what a.z.u.z. this in its normal form where you don't use any can count see then new just said after this thing and then you're just the calderon function. your execute and then everything runs and so everything is a shot down and when you finish and to that one function with horns. and it was all in sight of the same script. and it had a lot of customers were customization points to call see a time and all that in some circumstances you just need them. so one was that continuation tokens so it could be just a call back or it could also be a future all whatever you want it and i will show you a letter to actually even box with a code seen composer where you just have a different configuration token. another thing is you don't have cast at you as sweet given functions to put the task on to the executor and the one is the dispatch this is like the ecb function in the ocean a proposal.
in. the other once. or i have to chuck carter or was it. post and the for other no dispatch is actually allowed to on the functional ride of a like the line execute the that we had in the ocean a composer my post and the for i never was allowed to. block on the. the termination of that function of course it can always look if you have if you have to put it into a cue that it might look on their q but is never allowed to block on the execution of some function so and and the difference between post and their differs with disaster. the post more or less styles of the executive ok start that has quite a if you have a sweat or something like that and execution agent available via the third is something well that is more or less just a continuation of what i'm counting doing so it might. makes sense to the for that later and not scared your it right now because it has to wait any way for something i will first have to compute. i. that. all have claimed he needed to all those we function inside of a zeal to make it to a performance. he uses that inside off. a high speed surveillance with trading so we will he wanted the last of a performance artist. and it's and that is what i really needed it also came the faction get associated executor and this is exactly mechanism to asks the task that you are given on what exeter it wants to on so the. is exactly what i need it and my. example the fall. here so i just to add my task together with an executor and give then get to my pipeline in this case and then. pipeline can asked get associated the execute our and on this task that it was given and it will get back my artery exit so it can actually watch me this city. function all in. this special executor. so that actually look pretty nice for me in a little bit complicated than well most of the people in the compound single thought it was just too complicated they didn't really like it. at least not that very as a horse. and then we also get another proposal which was a mall s. just a week about is this is the point is we actually got said as different versions now we have. revision six of it and. facts what we got at that time walther version i think it was a vision five it might have been a vision for. and. that actually i also came with a web function but not as a function get associated executed. and the idea of theirs wead function it was the shots. started on the norm of cool. and but it put his small town that which just launched it on the web of the town were executed. which sounds like a nice take the downside of that is you can pretty easily get that looks with that. because if you only have says celia or palin ago and he actually the executor but you need a concurrent gallon tea on your tasks that you are launching when you have a problem because you might never get that. compound past because it's a lot on the original power to twenty. so that function was put out again so i now we were more or less has the original proposal but now with a template interface so this classic secular smallest just a concept and. we have concrete executors we also has a base class in the face of for those people who actually wants that finally interface can have a base class but everybody else can just work the templates and everything is fine. and where the real name it's not. spot any more but it's a cause for now and it's their first it's not the verge of function but second it's it doesn't use sanction anymore instead it's a template. on that function argument and that way you don't have the overhead of the function which also always includes a virtue. some call. and then form those folks who actually implemented the hell isn't t s they sat well for implementing this kind of palin isn't we need something that still looks to form. and so they invented something and i executed to aids so they execute actually tells you what function to use for water and what qualities that hands so. one of the things they are is what kind of government he do i get with you do i get the can count both county the archipelago is going to do just that we keep our focus guarantee the next thing is a future time it we listed future are always at some other time that my. i'd be much more lightweight. and how do i start the tasks a single cause. and. a number of times. if i have the power isn't if i have to implement the peril although it seems i often want to start the ten tasks once so we're heading in the face for that would be nice. soul of this something you my just be able to lead and it has a lot of collect us a on the slide but there is not doing a lot of things that you need to see here. so we actually have this executed plates and then we have inside of that the type for the future. so this is just the type to us so it could be any time. then we had fia the vende all that we have seen and anthony stalker yesterday so how do i have a fall the termination of all the toffs and he is how to launch a single function a sink. but you get. and here i have. a mechanism how to launch my tongue and might have it costs so this is a bike in the face.
of course there's a lot of more details but this essentially is the idea of the executives rights. i'm just very nice. to implement have a lot of times. it's not very useful in concert. and that the idea itself was actually a pretty good idea to not define a specific executor interface but just a wider mechanism to twenty leg between any execute our and the implementation. have the power law goes. and additionally if you had s. traits you can also provide those found some that are not directly and execute the inside of the plates and you don't have to do that yourself in the implementation of the palace more. of the her organs so for example if you don't have a bike interface no problem you justify that follow inside of the state's class. and the if you don't have a future us like those of the proposals you have seen they don't have a future if you sport or at the heart on that execute are no problem the quaids can as small rapport which just for whites some few. it's a time. and that we are very lightweight one that doesn't have to do a lot of synchronization. i. and then he also had strayed says form close calls to the point is that this was this actually. more than a year later than the audience of the executed plates and it comes out exactly out of the discussions well we have multiple proposals we need some. wade too well the only we need some vague too much those proposals i'm not sure whether that is actually a good idea or not maybe we should just provide those. the youth violence for simple task like elitism and others for more complicated tasks like as you and other things but right now we still try to get one's cullen couples have for executors. as soca's call offers a propos stare also more likely eight straits mechanism which is also used for example for educated plates are at the latest phase and things like that. in. so it more or less defines what high in of executor you hands so it's like they need as a it away to us for a random excessive the waiters who has more functions then watch our then for justin put it away as. and the idea was to have such categories also for executors and the twenty eight will tell you which interface the underlying a secular poor whites. so he specifically propose to different weights to execute which smallest just as a sport interface he called his executed but we never discussed names names as a last world as steve and never will he discusses america. everything is a lively evolution they have to find a nice names we will just use and in so names are not really an issue here so he called the executive in a set of all but the that a small us what the trivia executor of whites and then he hands the event execute the. and that has the despair to the different the post and it has some other mechanism so this is what he needs for to implement is a zero. so this might be of a fall that as well. but this is actually pretty you propose it was an discussed yet. so what is a con status so as i told you it is a clock two years ago in february. the show which in the proposal by google the was accepted into the compound c.t. us and just said the next meeting in switzerland and austria. the age of people a mall s. came all to us she won said well it doesn't work this way we we cannot use your executor we need the a zero based executed. so we had the votes they are and the votes inside of the classes committee a gentle and well in size of the small of hope all go to twenty five a soul iss means strongly in favour as means in favour and its new to the area's against. and as a strongly against it used to be not strongly against part over my dead body part. if we would have called it that way anymore we would have to queue to many people. so and so we had a vote on a personal k. is removed the original executive proposals form the can count c.t.'s and that the outcome of that vote was actually only two people were against that show it. he was actually the. in favor of removing the original proposal. and that but where to put a strong consensus that we didn't like is the easy of couples as it was the execs are part of that one. so more work on that one so applying that as wallace to the can count c.t.'s definitely. what a split thing so we didn't get it. and. and then. s. she won just called a special meeting in redmond. it was in the journal as a crisis meeting it was just a meeting of s. t. one today's meeting. there were more as only the google and microsoft people who were more or less the authors of the origin of google proposal and they showed a new vision of that composer and they've all that's about all we really want that composer. we had led to people strongly against and those who actually people who were not their part but just attended by teleconferencing i. so what are the even those people who knew ok i while we still has to his into the as you people because they have to live it's that it's ok to ask how and the interesting thing is that the networking he and it's actually. contains the execute the form because call. so if he would put this proposal actually into the can count c.t.'s then we would have won the ts with one proposal and another two years the nets are going. the us with a different execute a proposal that would be a good idea so on yeah we're still stalled on that one and that this was in september two thousand and fourteen and since then what we are discussing and we're looking at special cases. then hard to solve them and so on and the way said the pair of the state's proposal as i call it was discussed several times and we generally like the approach but we will we never had a formal vote on that and i believe it's still not country.
it all it's very specific for our peril things and the tate's for pose a form because call of the didn't discuss yet because that is a form of the school's call off he lives in australia and the. pretty where it comes to the meetings so why it's a lot of papers as those papers are pretty popular but we have nobody. the soon to this cast that at the actual meetings and that doesn't make it easier. however what do we really need. wow. what is unexpected. for me and execute the first just a very very low level building. and loan programs should never use executor like no other programs never use the al qaeda. containers u.c.l. occurred. so something like a thing or white high line or a zero those use executed. and then my location puts tasks on those. millais are components. and the application also my poor why their own executors like they do for example for decades. i say imbedded says since the systems we pretty often wide all own locate us for we're time purposes or go for other purposes for other reasons. i also know that the bloomberg people have a wide cellphone located just for performance because that means a lot. so but they don't want to change the containers for this. and this the same as executor us so it might be that my application provides an executor and the application but it's still wants to use the pipeline implementation. however as i have shown it might be that my harness have some information some special information that my specific executed down here actually. is interested in. and knows how to deal with it. but this information has nothing to do with the parkland so the pipeline itself is not interested in so i need some mechanism to win information for my application for my tasks to my executed. who some other component to a standard component. and this just need some sort. and where there's a general rule the mall in four i have the better performance i can get less power i can use all whatever i want to do and there's a lot of information that my task. could give the executor. but nothing of that needs to be known by the pipeline implementation. and there were probably nothing of that should be standard advice because that is specific for some domains for some specific of occasions. so we definitely need a mechanism for that as i told you the ac a proposal has such a mechanism to as and rework completely vols so it might need some tweaking and it definitely doesn't work. close the binary interface so if we we want to adopt that we need more work on that one. but we still have more things coming. and. can count see is often a lot about a simplicity. and. as i told you yesterday if you have abounded sweat pool and have a task wanting on that. the locking inside of their hearts might really be a very least of your resources because then you're bound to sweat pool moves one of those that isn't doing anything it's just waiting for some input or whatever so that's another. a good idea sell and and gentle a you should try to avoid looking. and. even a seal. the asynchronous approach from a zeal mom in general a it's just call a tough but it might be put em taste if you have things like priority like real time car it isn't things like that. and while we have nothing in the standard get for his income the city however we have for the networking p.s. nearly finished and say we have start than an hour. concoction c.t.'s and we have to move the functions which became code teens are also in some years to come. and that's an interesting thing different costs as soon as you think asynchronous covert teens make a lot of sense. the. and ideally coat in space more or less like sets so you can cloak of them like sets but without the downsides of that's so you don't have to think an arsonist. because everything is in your own sweat you never get the m.p.c. interrupted. but you decide when someone else get some work. and where. a z o x surely work cisco teens i was shown example in a minute. however due to the next to sit in the face for it. the idea. the real thing would be if i could give my height line. just the coating. modest salary ok use just myself and i wouldn't have to change anything inside also pipeline interface even side of the pipeline implementation. but for that the code since the poll said the county have thaksin who really work. so here it's a small example of how was simple the echo. of our. the works with a c.e.o. without proteins so you have one function that starts everything that just a vase on some socket. vegas that some data is a wet into something far and as soon as some data has a lie it to be color. the continuation and that contain a shin big it as a meta the number of fights in that bar far.
but not about for that often leads to be an external a resource that the lumbar has said access to. and the year. then we have just a function and in this case we've it just has to function handle week. and my hand or week function just whites the boss far as it was the got it out to the socket. that isn't asynchronous function again. so i need to give it the continuation reconciliation is cause and allied which more or less the same as the star function. the advanced really nicely however it's not the way the obvious how it works so the. the fact that i just to see some data and send it back is actually is scattered a war two different functions. so is code teens. the sas the commons. two statements with some white some. that's it. of course i am have to tell its that it works this code he is so it looks a little bit different so i hear the echo function at their gets some so-called of a context and i can use of that of eight context here in my a single. but some and i give it here. the context and then this is used to. to some other stuff until it's ready and once that is ready. it will come back here. and call that white. so under the who have more that's exactly the same happens as for the previous night. but this looks much nicer to the program. maybe not to the also a programmer but to that poor guy that has to maintain that code than five years from now. or even myself if i have to look at that again in half a year. so actually coincidence were high in the off flight can execute or but unfortunately only kind of. so. if you look again at that height line. and. caulfield to function so that sounds and that i give the pipeline just gets an object and that earns an object in my case it's just brings it could be anything else. so. now if i wanted to implement the pipeline. i first has to put all my different segments of my pipeline. so all those wi-fi a great power of the contest and so on i have to put that on to some executives are. and i need to make sure that it has arrived going to go is going to be. and were internally i just use message queues like anthony showed in the previous talk. those were known blocking iron we hear need the blocking worship. but my foundation landfills are just takes a queue for the input to queue for the output and the function and then it calls vate pop on the queue to get something then called high functioning. with that something that it got. and there then pushes it to the out queue. and if that this at some time every saying put you at some times as his clothes than echoes my output q and i'm finished. so this is all very nice the problem is vague pop. and push. are blocking functions. as i told you blocking is not have a good thing to do on a bond that the poorer it's also an definitely not a good thing to do if i use code teens because once i'm looking in a coat in i'm lost i will never make progress. the animal. so should i have a different imitation for pipeline if i could the coating instead of. can count progress. a gallon tea. all she and in this case i would be quiet accused that also has an amazing can as and the fans. all should actually the vague pop and push functions behave differently depending on which kind of exeter i'm counting on. also it actually be further down so the internal mutates in conditions or will you should behave differently very high one on occur within for example are all to hell as saying on a concurrent thing. and unfortunately those are actually open question its. and if i have a bond it's not poor i need to know whether i can watch a compound agents so whether i can start an age and as his start the task and x. is actually start of the height of a. all whether that's not possible because it's about its that pool and the oscars are busy. so i need some interface for f one as well. in my example i'd actually had different executors and doing everything light for a difference that executions in the same pipeline something that's not clear. i. so for. what should we do. while. i told you we are discussing but we are still discussing. we know that we have somewhere quiet men's the not will be satisfied by both have a proposal. it's still not really clear what information the task can we use and how it carry us that to be executed. and as i told you the a zeal. moses pretty complex is very complicated and has a lot of for customisation points. we're not everybody is that so the latest proposal where you actually have two different kind of executed as us a step in the right direction. why is because mazin his proposal to the group of all the simply doesn't have such customization points. and coworking still need a lot of thinking and to actually come by in val with executives. and here are my references. i'm i don't have time for questions now i will be around for some time for now just thank you.