Sep. 11th, 2013

juan_gandhi: (VP)
Несколько дней назад получил от Чабы мессагу, мол, такой-то парсер на таком-то аккаунте работает очень долго - 2 часа висит, потом дохнет.

Посмотрел. Он ни хера не работает, он в swt вызывает простенький джаваскрипт (никаких циклов), и там и зависает.
Посмотрел ещё раз в сорсе. Коммент Чабы, годовалой давности - "иногда здесь зависает".

Ну чо, бум чинить. Начнём с внедрения сентинелов, как в "Матрице".
juan_gandhi: (VP)
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
  def spendNotMoreThan[T](time: Duration) = new {
    def on(op: => Result[T]): Result[T] = {
      var res:Result[T] = Empty
      var done = new AtomicBoolean(false)
      val nanos = time.toNanos
      val upto = System.nanoTime + nanos
      val worker = new Thread {
        override def run {
          res = op
          done.set(true)
        }
      }
      worker.setPriority(1)
      worker.start
      val sentinel = new Thread {
        override def run {
          while (!done.get && upto > System.nanoTime) try {
            Thread.sleep((upto - System.nanoTime + 999999) / 1000000) // java sleep does not use nanos
          }
          worker.stop
        }
      }
      sentinel.setPriority(5)
      sentinel.start
      sentinel.join
      if (done.get) res else Result.error(s"Timeout after $time")
    }
  }

//--------------------
// E.G.:

    "Delimit execution of stuff using timer" in {
      val startTime = System.currentTimeMillis()
      var lastChecked = startTime
      import scala.concurrent.duration._
      val ten: DurationInt = 10 // thank you specs2 for overriding Duration class
      val timeout = ten milliseconds
      val result = spendNotMoreThan (timeout) on {
        for (i <- 1 to 20) {
          lastChecked = System.currentTimeMillis()
          Thread.sleep(1)
        }
        Good(lastChecked)
      }
      result must_== Bad(s"Timeout after $timeout"::Nil)
    }


Critique welcome.
juan_gandhi: (VP)
"В июле 2013 года в вечернее время, Костенников Э.В. находился в состоянии алкогольного опьянения на кухне квартиры по ул. Почтовая, п. Брусянский Узловского района. В ходе ссоры с С., возникшей на почве личных неприязненных отношений, Костенников Э.В. взял в правую руку кухонный нож, зашел в жилую комнату, где находилась С., левой рукой толкнул ее в область груди, выражаясь при этом в адрес С. нецензурной бранью. С. не удержалась на ногах и упала на кровать, на спину. Костенников Э.В. лег сверху на С., при этом кистью левой руки нажав на шею С., высказывая в ее адрес угрозу убийством. Затем Костенников Э.В. приставил кухонный нож к шее С., продолжая высказывать в ее адрес угрозу убийством, а именно говорил С., что убьет ее. С. восприняла угрозу убийством реально. Свои преступные действия Костенников Э.В. прекратил только после того, как С. попросила отпустить ее в туалет, Костенников Э.В. отпустил С., после чего она убежала из квартиры.
10 сентября 2013 года приговором мирового судьи Костенников Э.В. признан виновным в совершении этого преступления, ему назначено наказание в виде обязательных работ сроком на 250 часов."

Read more... )

Грустно жить на свете иногда.
juan_gandhi: (VP)
regarding the chemical weapons.

Done by Putin. I wonder if it can be proved. But he definitely benefited a lot.

Ain't it good to write stuff in English? Krembots won't even notice.

Profile

juan_gandhi: (Default)
Juan-Carlos Gandhi

August 2025

S M T W T F S
      12
3456789
10 11 12 13141516
17181920212223
24252627282930
31      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Aug. 20th, 2025 07:22 am
Powered by Dreamwidth Studios