Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling

comment on

( #3333=superdoc: print w/replies, xml ) Need Help??

(Shrug...)   I have long ago resigned myself to the realization that there is nothing I can do or say to change this man’s opinions about me, and so I spend very little time thinking about that.   Furthermore, that’s not why I said what I did.   I meant it, nothing more or less.

And, “unadulterated garbage” or no, I meant my follow-on comment also.   Multi-threaded solutions have a long reputation for being unreliable, and it always comes down to:   a timing problem.   Something that “appeared to work okay” on the developer’s machine that fell apart when subjected to real-world conditions.   The very same edge-cases that were discussed earlier in this thread.   “Signals,” which are by definition a form of rendezvous that occurs at a particular arbitrary instant in time (and which are handled asynchronously) ... instability which occasionally but not consistently shows up even to the developer ... attempts to “fix the problem” with pauses ... and at the end of the day a design problem that simply will not go-away like that.   Signal-based designs are tightly coupled, while resilient and scalable designs are loosely coupled.   You see evidence of that in all kinds of workload-management software ... JBoss, for instance.   Stuff that has nothing to do with Perl.   Any timing-based assumption is a kiss o’s death.

If you want to see how a reliable multi-threaded system works, just go order a burger at McDonald’s and watch how their system works.   It is all implemented by human beings and connected by queues.   Machines signal humans, but humans don’t signal each other.   It works just as well, and it works the same way, whether the place is empty or full.   If something breaks down, it automatically recovers.   The computer systems that they use today are simply an implementation of the workflow management system that first attracted the attention of Ray Kroc to what the McDonald brothers were doing.   The thing to observe is ... their process, itself.

If your design is running anywhere close to being affected by the “edge cases” that differentiate Linux from Windows, then IMHO you need to change that design.   To get back well away from that edge.   To use something other than bare signals ... to build a different design that does not require these things.   A design with no need to care.

I will respond as best I can, try to be as helpful as I may be to the original poster and to the thread, and yes, I will give credit where credit properly is due.   I said what I meant, and I meant what I said.   And somehow, despite all that, accumulate 12,530 experience points and counting.   (And, yeah, I know that’s small change by comparison, but to me this is not a competition.   It’s just trying to help other Monks.)

In reply to Re^3: Threads and signals in Windows (invoking the name) by sundialsvc4
in thread Threads and signals in Windows by bojinlund

Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":

  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.
  • Log In?

    What's my password?
    Create A New User
    and the web crawler heard nothing...

    How do I use this? | Other CB clients
    Other Users?
    Others imbibing at the Monastery: (5)
    As of 2020-11-27 14:22 GMT
    Find Nodes?
      Voting Booth?

      No recent polls found