TGTGInsightтелеграм анализLIVE / telegram public index
← Такты, стеки, два колеса

TGINSIGHT SIMILAR POSTS

Намери подобно съдържание

Изходен канал @clockstackwheels · Post #855 · 10.09

Крутой онлайн-конструктор стеллажей с возможностью заказа. Поскольку я гик, то люблю всё точное и технологичное, не люблю лишний раз взаимодействовать с людьми, а еще у меня есть страсть организовывать вещи. Нередко это боль: купишь стеллаж в какой-нибудь Икее или Леруа, и всё равно часть предметов слишком большие или слишком маленькие для ячеек, а сам стеллаж либо не влезает в нужное место комнаты, либо оставляет слишком много свободного места. И вот прочитал на VC статью о пермском производстве мебели "Привет Макет", которое сделало онлайн-конструктор и автоматизировало распил и сверление нетиповой продукции. Сразу полез смотреть. Оказалось ровно то, что мне нужно. Супер крутой 3D-конструктор в браузере, где реально можно составить практически что хочешь конкретно по своим размерам и под свои нужды. Сразу отображает цену в реальном времени. Дальше жмешь заказ, на стороне производства создаются нужные задачи под ЧПУ-машины, которые после подтверждения запускают в работу. Доставка из Перми Деловыми Линиями. Отдельный респект за то, как всё упаковано. На всех коробках номера или другие поясняющие записи, весь крепеж аккуратненько разложен по пакетикам, для одинакового вида крепежа есть уточнения по области применения. Ещё в комплекте чертежи и обозначения каждой детали, чтобы не запутаться. В общем, получил от сборки много удовольствия — такое лего для взрослых, ещё и сделанное по твоим запросам. Скоро покажу вам, что в итоге получилось после размещения вещей. Правый стеллаж под настолки, левый под электронику и другие бытовые штуки. P.S. За этот пост мне никто не платил, делюсь личными впечатлениями и крайне поддерживаю все подобные начинания, как у этой фабрики. #life#окр

Hashtags

Резултати

Намерени 5 подобни публикации

Търсене: #haskell

当前筛选 #haskell清除筛选
宇宙航海誌

@uchuukoukaishi · Post #368 · 31.07.2023 г., 13:36

今天下午碰到一个并发问题,之前写的 Haskell 并发代码有考虑不周的地方,在特定情况下会死锁,简化一下是这样的: replicateM_ n_workers . forkIO $ do { -- Worker 线程 doSomethingThatMayFail; signalTSem semaphore; } -- 主线程 waitTSem semaphore 如果 doSomethingThatMayFail 抛异常导致线程挂了,那么 signal 就 unreachable,于是主线程会卡住。而 GHC 直接检测到了这个问题并在主线程(比较及时地)抛出了 BlockedIndefinitelyOnSTM 异常。 有点好奇是怎么实现的,于是读了一下 GHC,目前初步的理解是:Haskell 中的线程本身是一个会被 GC 的堆分配对象,当前线程 block 时这个线程会被放到 TVar 的 wait queue 里。如果 TVar 被 GC 了,那么这个线程本身也就 unreachable 了(线程本身并不是 GC root),会被 mark 掉。GC 过程中,如果发现某个 thread 是 unreachable 的,那么在最后关头会调用一个叫 resurrectThreads 的函数(Schedule.c),这个函数会检查线程状态对象的 "why_blocked" 字段,如果是 BlockedOnSTM(在 park 的时候设置的),那么就会在这个线程里抛出一个 BlockedIndefinitelyOnSTM 异常(相应地,其他 block 理由也会有其他种类的异常抛出)。 这个机制不使用任何 timer,并且一旦抛出异常就是真的发生 deadlock 了。缺点大概是不 complete ,比如用一个 StablePtr 维持住线程对象的命,就可以 hang forever 了。 #haskell

Hashtags