Path: csiph.com!eternal-september.org!feeder.eternal-september.org!news.albasani.net!.POSTED!not-for-mail From: Melzzzzz Newsgroups: comp.programming Subject: Re: About transactional memory Date: Thu, 22 Oct 2015 04:00:50 +0200 Organization: albasani.net Lines: 58 Message-ID: <20151022040050.58c2aecf@maxa-pc> References: <20151022024411.5dd9275c@maxa-pc> Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Trace: news.albasani.net 2gKYcUKcEr0r6EXeMyoVj+vEEa2/pETr4855Fa6jcS7tj+H3hRQx5XN3JsS8Bz05D//bl5JN1naIGm6pCbA43w== NNTP-Posting-Date: Thu, 22 Oct 2015 02:00:50 +0000 (UTC) Injection-Info: news.albasani.net; logging-data="zRuU0RQQvZHN6AyBc7J18z0nAlPib4WvQAZLJAefpO2ie62+03ZhhQZzq0TBtmeY7SGybyz7vU/1HIVrwTu1TspH6wzoYgY3ExrhKqv/DsKFOAB77AAWNab7KHQ9INI3"; mail-complaints-to="abuse@albasani.net" X-Newsreader: Claws Mail 3.13.0 (GTK+ 2.24.28; x86_64-unknown-linux-gnu) Cancel-Lock: sha1:oH+9xtDpGXQ7MbpgSvmDU577xLY= Xref: csiph.com comp.programming:5936 On Thu, 22 Oct 2015 02:51:42 +0100 Richard Heathfield wrote: > On 22/10/15 01:44, Melzzzzz wrote: > > On Thu, 22 Oct 2015 01:20:09 +0100 > > Richard Heathfield wrote: > > > >> On 22/10/15 04:12, Ramine wrote: > >>> > >>> Hello, > >>> > >>> > >>> I was thinking more and more... > >> > >> Okay, I'll run with that for now. > >> > >>> > >>> And now i have come to an interesting subject... > >>> > >>> Perhaps you will ask me a question as this: > >>> > >>> Amine, why have you invented your new scalable distributed > >>> reader-writer mutex, and why have you not simply used > >>> transactional memory like: Intel TSX or others.. > >> > >> Well, no, but I do have a question for you. > >> > >> This code is from Mlock.pas: > >> > >> Buffer1 := AllocMem(SizeOf(TListEntry) + Alignment); > >> FCount1 := PListEntry((int(Buffer1) + Alignment - 1) > >> and not (Alignment - 1)); > >> > >> I am guessing that AllocMem is rather like malloc, in that it > >> allocates a bunch of memory. Is AllocMem an implementation-defined > >> function, or one of yours? If it's one of yours, where is the > >> source code? > >> > >> If it's not one of yours, what happens if it can't allocate the > >> memory? Does it return some kind of failure indicator, a la malloc? > >> > >> If so, why aren't you testing for that, and is all your code this > >> shaky? > >> > > > > It can be configured to either return NULL or throw run time error. > > By default it throws error. > > Okay, so if there isn't enough memory, either it throws an error, in > which case the program aborts unexpectedly (I see no "catch" code > here), or it scribbles all over memory it doesn't own. > > Neither option looks good from over here. > What puzzles me most is that global variable which controls function behavior can be set by user ;p