LINUX.ORG.RU

Сообщения visla_vi

 

[Perl][Threads] Как попасть в deadlock?

Форум — Development

Пытаюсь организовать deadlock из познавательного интереса. Вот немного улучшенный пример из perlthtut (http://perldoc.perl.org/perlthrtut.html#A-Thread-Pitfall:-Deadlocks):

#!/usr/bin/perl
use threads;
use feature 'say';

my $a :shared = 4;
my $b :shared = 'foo';

my $thr1 = threads->create(sub {
	{
		lock $a  &&  say "thr1: \$a locked";
		sleep 3;
		lock $b  &&  say "thr1: \$b locked";
	}
	say "thr1: \$a unlocked";
	say "thr1: \$b unlocked";
});

sleep 1;

my $thr2 = threads->create(sub {
	{
		lock $b  &&  say "thr2: \$b locked";
		lock $a  &&  say "thr2: \$a locked";
	}
	say "thr2: \$a unlocked";
	say "thr2: \$b unlocked";

});

$thr1->join();
$thr2->join();

Казалось бы, гарантированный deadlock и обе нити должны замереть на вечность в ожидании блокировки. Но не тут-то было. Не виснет вообще ни разу! :/

При запуске получаем:

thr1: $a locked
thr2: $b locked
thr2: $a locked
thr2: $a unlocked
thr2: $b unlocked
thr1: $b locked
thr1: $a unlocked
thr1: $b unlocked

То есть, $thr2 получает блок на $a, хотя она в это время заблокирована из $thr1.
Как так? :)

P.S.

shovel@r2d2> perl -v | head -2

This is perl 5, version 12, subversion 4 (v5.12.4) built for i486-linux-gnu-thread-multi-64int
OC: Debian testing

 

visla_vi
()

[javascript][opera] Яндекс-счётчик грузит проц

Форум — General

Заметил, что опера кушает проц (10-20%), даже когда её не трогаю. Вкладок с флешем не открыто.

Нашёл пример страницы, ответственной за нагрузку: http://www.csedays.ru/application2011/training-projects/agent-based-modeling

Если выпилить из страницы код яндекс-счётчика, то проц приходит в покой.


<!-- Yandex.Metrika counter -->
<div style="display:none;"><script type="text/javascript">
                               (function (w, c) {
                                   (w[c] = w[c] || []).push(function () {
                                       try {
                                           w.yaCounter8017348 = new Ya.Metrika({ id: 8017348, enableAll: true });
                                       }
                                       catch (e) { }
                                   });
                               })(window, 'yandex_metrika_callbacks');
</script></div>

<script src="//mc.yandex.ru/metrika/watch_visor.js" type="text/javascript" defer="defer"></script>
<noscript><div><img src="//mc.yandex.ru/watch/8017348" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
<!-- /Yandex.Metrika counter -->

Chromium на этой же странице использует 0% cpu Iceweasel — около 5%

Отправил баг в багзиллу оперы.

Посоветуйте, как жить дальше :D

 ,

visla_vi
()

Абитуриентота на Лоре!

Галерея — Скриншоты

Кому тяжело видеть двое часов, могут удалиться сразу. На этом скриншоте часов четверо :)

О пустоте

Панель кедов нужна мне и наполнена не только для функциональности, но и для внешнего вида. Наличие некоторого количества виджетов бережёт психику. Тяжеловато, когда на экране совсем ничего нету, кроме рабочего окна.

Обличите в латентной страсти к рюшечкам? А попробуйте-ка пожить в абсолютно пустой комнате, где, кроме стола и кровати, совершенно ничего нет. Вот и я, жил около года с флюксом без панельки и декорации окон. Очень удобный и быстрый интерфейс – особенно в сочетании с хоткеями и ~/.fluxbox/apps, – но от пустоты некомфортно, пустота давит.

Панель около 90 пикселей в ширину. Профит:

  • Удобно поопадать мышью в квадратики рабочих столов.
  • Вмещаются и читабельны довольно длинные названия приложений в Text Launcher.
  • ..Круто было бы разместить столбиком Global Menubar на этой широкой панели.

О часах

  • По часам с циферблатом смотрю время.
  • Двоичные часы – тренируют узнавать двоичные числа до 9. Их юзабельно помнить при переводе чисел между системами счислений на ЕГЭ по информатике.
  • Fuzzy clock – так свободнее двум предыдущим часам.
  • По цифровым часам с секундами удобно засекать время решения отдельных заданий. Цифры затемнены, чтобы не были заметны боковым зрением.

Firefox и вкладки

Когда вкладок слишком много (больше 10), то становится неудобно. Пробовал располагать вкладки в несколько рядов (расширение Tab Mix Plus) и столбиком сбоку (расширение VertTabbar). Не помогает, напрягает и тот и другой вариант.

Пока что самым удобным вижу сочетать вкладки kwin и вкладки Firefox. Вот такое дерево вкладок. В каждом окне браузера открыты страницы, связанные с определённой задачей.

Тема кедов и цвета

  • Widget style: Oxygen
  • Workspace style: Aya
  • Color scheme: Wonton Soup

>>> Просмотр (1440x900, 164 Kb)

 , ,

visla_vi
()

Закос под tiled wm

Галерея — Скриншоты

png

Fluxbox издали_подобно тайлед вмам, имеет возможности автоматического размещения вновь открываемых окон. Можно настроить, на каком рабочем столе и в какой его части будет появляться приложение. Обычно я не перетаскиваю окна. То есть, раскладка статична, и для её однозначного определения достаточно файла .fluxbox/apps. Поэтому я не использую dwm/xmonad/awesome/.. А еще потому что мне будет не хватать заголовков окон )))

Коньки сплющил и размазал во всю высоту. Над ними stalonetray. Слева от них, на терминале невероятно занятная игра ;). transmission, psi - это и так видно )

Остальные окна размещены на прочих рабочих столах во весь экран. FF,opera,OOo,djview. Коньков и трея на других рабочих столах нет.

Шрифты. После того, как установил в xorg.conf dpi=120, шрифты стали выглядеть гораздо лучше, почти исчезло мыло на сгибах.

Обои Просидел около недели под кедами. Обнаружил, что приятно и легко иметь содержательную вменяемую обоину - вместо серой клетки с божьей коровой. Утомился от отсутствия привычных хоткеев, оттого что окна появляются где попало, ну и от угрёбищности кед, конечно же ))) Вернулся в флукс и сменил обоину. ТруЪ совковая (за исключением головы кровососа на стене;)). На шкафу лежит лентовый магнитофон (у всех такой же был? (: )

ссылка на обоину

PS вообще-то такое расположение окон изначально сделано специально для этого скрина, но че-т мне понравилось. Наверно, так и оставлю. Только терминал неудобно широковат, а так...

>>> Просмотр (1440x896, 288 Kb)

visla_vi
()

RSS подписка на новые темы