Ш̴̴̜̥͍͕̼̙̱͙͎͍̘̀̐̔́̾̃͒̈̔̎́́͜р̧̛̺͖͖̯̖ͧͤ͋̅̽ͧ̈̐̽̆̐͋ͤͦͬ͛̃̑͞͞и̒ͥͤͯ͂ͣ̐̉̑ͫ̉̑҉̛͏̸̻͕͇͚̤͕̯̱̳͉ͅф̴̴̡̟̞͙̙̻͍̦͔̤̞̔̓́̍͗̚͢͞ͅт̨̐ͫ̂͊̄̃ͥͪ͏̫̺͍̞̼͈̩̥̜͔͜͜ы̸̴̱̺̼̠̦͍͍͍̱̖͔̖̱͉̅͑͌͒ͫ͒̀ͥ͐ͤ̅͘̕.̵̴̡̭̼̮͖͈̙͖͖̲̮̬͍͙̼̯̦̮̮ͦ̆̀̑̌ͮͧͣͯ̔̂́͟г͌ͮ̏̈͂ͯ̚҉̛̙̬̘̲̗͇͕̠̙͙̼̩͚̀͘͞ͅо̷̥̯̘̓ͤ̽͒̋̉̀̂̄̒̓̊ͨ͛́̌ͤ̂̀͠в̶̒͒̓̏̓̚҉̛̙̘̺̰̮̼̟̼̥̟̘̠̜͜н̸̷̸̲̝͈͙̰̟̻̟̰̜̟̗͎̻̻͍̿̔̃ͨ͑о̔̀̋ͫ̇̿̐ͫ͌͗ͩ҉̨̜̙̙͈͍̮̮̼̙̘̞̕͜͡ Войти !bnw Сегодня Клубы
Привет, TbI — HRWKA! 1245.0 пользователей не могут ошибаться!
?6969
прекрасное6456
говно5915
говнорашка5512
хуита4735
anime3076
linux2661
music2640
bnw2607
рашка2584
log2372
ололо2237
дунч1868
pic1816
сталирасты1494
быдло1440
украина1438
bnw_ppl1433
дыбр1238
гімно1158

из бесконечного цикла можно выйти по предустановленному таймауту?
#RYZL2F (2) / @moskvano / 3869 дней назад
почему когда с пидорахой начинаешь какой-то более или менее серьезный разговор, он сразу же бежит срать и продолжает с тобой разговор уже с толчка?
#PU79KN (1) / @moskvano / 3869 дней назад
А что если Кадыров на самом деле крипто-амир Имарата Кавказ? Он убил Умарова и занял его место?
#51V61H (4) / @o01eg / 3869 дней назад
?
Как вылечится?
#L6SPUU (9) / @anonymous / 3869 дней назад

У меня вопрос, но начну с введение в то как я до него дошёл.
Допустим, у нас есть какой-то коллбэк, в качестве примера возьмём FutureCallback из всячески уважаемой мной библиотеки HttpCore.
Допустим также, что мы угорели по асинхронности и поэтому после того как коллбэк завершил свою работу, мы хотим сообщить об этом куда следует. Например, чтобы там новый запрос запустили или ещё чего.
Наивная имплементация будет выглядеть примерно так:

public class CompletingFutureCallback<T> implements FutureCallback {
    private final FutureCallback<? super T> callback;
    private final Runnable completionCallback;

    public CompletionFutureCallback(
        final FutureCallback<? super T> callback,
        final Runnable completionCallback)
    {
        this.callback = callback;
        this.completionCallback = completionCallback;
    }

    @Override
    public void cancelled() {
        callback.cancelled();
        completionCallback.run();
    }

    @Override
    public void completed(final T result) {
        callback.completed(result);
        completionCallback.run();
    }

    @Override
    public void failed(final Exception e) {
        callback.failed(e);
        completionCallback.run();
    }
}

Зоркий глаз сразу скажет: А что если коллбэк был написан говнокодером и он кинет unchecked exception в ответ на вызов cancelled, completed или failed? Тогда completionCallback вызван не будет. Ладно, переделаем на finally. Далее уже рассматриваем рефакторинг одной функции, благо все они однотипные:

@Override
public void cancelled() {
    try {
        callback.cancelled();
    } finally {
        completionCallback.run();
    }
}

Зоркий глаз возразит ещё раз: А что если оба коллбэка написаны одним и тем же говнокодером и completionCallback.run() так же кинет unchecked exception? Да, после того как unchecked exception кинул callback.cancelled(). Даже если мы где-то снаружи ловим все Throwable, то информация о первом эксепшене будет безвозвратно потеряна.
В этот момент перфекционист вырывает клок волос из головы и призывает в помощь try-with-resources:

class Completer implements AutoCloseable {
    private final Runnable completionCallback;

    public Completer(final Runnable completionCallback) {
        this.completionCallback = completionCallback;
    }

    @Override
    public void close() {
        completionCallback.run();
    }
}

public class CompletingFutureCallback<T> implements FutureCallback<T> {
    …
    @Override
    public void cancelled() {
        try (Completer completer = new Completer(completionCallback)) {
            callback.cancelled();
        }
    }
    …
}

Вот теперь всё предельно корректно:
Если callback кинет исключение, то completer.close() так же будет вызван, и если он также кинет исключение, то это второе исключение будет добавлено к первому в список suppressed и при печати стек-трейса его будет видно и можно будет поанализировать.
Ну а если callback отработал как следует, то completer.close() так же будет вызван, а если исключение, if any, будет также проброшено наружу.

#KIFEAY (7) / @hirthwork / 3870 дней назад

Посоветуйте годную гуглгруппу или иной ресурс, куда можно было бы запостить
пост со сравнением двух сходных идиом и чтобы получить нормальную дискуссию.
SO не подходит, потому что у меня скорее не вопрос, а приглашение к обсуждению.
В гуглгруппсы глянул и их там сотни и первые две на полнены вопросами типа
how to hide and show cursor in JTextField? и происками HR

#ZPF3PC (14) / @hirthwork / 3870 дней назад
Я так понимаю, что стоковый почтовый клиент не умеет получать письма в формате ХТМЛ и не умеет синхронизировать выбранные папочки в по IMAP. Досада и боль. А какие есть приличные?
#0MLZZF (10) / @dluciv / 3870 дней назад
Подскажите хорошую анноилку о новых сообщениях в IMAP-меилбоксе. Консольная проверялка тоже ок. Чото год назад копался и всё говно, а клаус не умеет.
#RZGIKZ (17) / @l29ah / 3870 дней назад

Перцы, кто syncthing осилил?
Насколько оно надежно/юзабельно?

#SFJCEA (46+1) / @ninesigns / 3870 дней назад
Интервью с одним из основателей радио Рокс http://www.fontanka.ru/2015/04/20/181/ Речь о том, что на существующих аналоговых FM частотах можно будет напихать вчетверо больше цифровых радиостанций. Это в принципе похоже на правду (хотя там, где аналоговое было слышно плохо, цифровое станет не слышно вообще). Но меня удивляет вот что: CCIR УКВ -- это текущий "FM-диапазон": https://ru.wikipedia.org/wiki/%D0%A3%D0%9A%D0%92_CCIR В России планируется внедрение цифрового радио на других частотах: https://ru.wikipedia.org/wiki/%D0%A6%D0%B8%D1%84%D1%80%D0%BE%D0%B2%D0%BE%D0%B5_%D1%80%D0%B0%D0%B4%D0%B8%D0%BE#.D0.92.D0.BD.D0.B5.D0.B4.D1.80.D0.B5.D0.BD.D0.B8.D0.B5_.D1.86.D0.B8.D1.84.D1.80.D0.BE.D0.B2.D0.BE.D0.B3.D0.BE_.D1.80.D0.B0.D0.B4.D0.B8.D0.BE.D0.B2.D0.B5.D1.89.D0.B0.D0.BD.D0.B8.D1.8F Это совершенно логично -- не вырубать же существующие станции сразу после включения цифровых. Теперь видим вот эту реплику: /– Они не должны будут никого к себе пускать. Но они смогут раскрыть собственные возможности. Сейчас, например, у них одна программа. Условно назовём – "Эрмитаж". А дальше, предположим, на этой же частоте появляются другие станции: например, "Джаз вокальный", "Джаз прогрессивный" и так далее. От такого расширения форматов выиграет сам держатель частоты./ Человек -- один из основателей радиостанции. Я не верю, что он может быть настолько не в теме. Я что-то понял неправильно?
#S68BK2 (0+2) / @dluciv / 3870 дней назад
>Бесплатная доставкав службой China Post Registered Air Mail Это заказное письмо?
#VHCIXK (1) / @sin-ok / 3871 день назад
Как разорвать все tcp-соединения которые проходят через определённый интерфейс и хотя бы оканчиваются сокетом на этой машине?
#98FESL (6) / @l29ah / 3871 день назад
Снёс случайно содержимое /dev. Как попросить udev его наполнить обратно? Инбифо перезагрузиться и devtmpfs.
#ODPME7 (2) / @l29ah / 3871 день назад
Что в них вставлять? // распечатку с хуйцом комара
#GG8NHH (3) / @sin-ok / 3871 день назад
?
Каково быть русским? Уважают ли нас другие страны, боятся или ненавидят?
#ZO48BH (3) / @anonymous / 3872 дня назад
Кто-нибудь юзал http://julialang.org/ ? По-моему она не такая платная, как Матлаб, не такая тормозная, как Питон, и не такая отстойная, как они оба. А ещё на видео бородатый чувак в халате, прямо как я https://youtu.be/Eb8CMuNKdJ0 Кто-нибудь скажет pros/cons?..
#ARBK2P (16) / @dluciv / 3872 дня назад
Я один не понял, при чём тут Покемоны? https://www.youtube.com/watch?v=fDKsd-lmSXU
#2PB41N (1) / @o01eg / 3872 дня назад
?
Чи є порушенням NAP занадто швидке дихання на космічній станції?
#KJHIJU (1) / @hate-engine / 3872 дня назад
?

Являются ли вопящие (анноящие) в общественных местах спиногрызы нарушением NAP?

#U012A9 (10) / @ninesigns / 3872 дня назад
--
ipv6 ready BnW для ведрофона BnW на Реформале Викивач Котятки

Цоперайт © 2010-2016 @stiletto.