• Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

knowing process is in infininte loop

 
Puneet N Vyas
Ranch Hand
Posts: 61
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
how can i write a java program which demostrate that a process is in a infininte loop and when it comes under such condition,our program detects it and suitable course of action
 
Campbell Ritchie
Sheriff
Posts: 48652
56
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
You need Knaster's and Tarski's lattice theory, and you demonstrate that the lowest fixed point of the transitive opening of your loop converges on "abort." And if you can understand that lot, you are doing quite well.

Or to put it simply: you can't. Java doesn't support the loop variant of languages like B or Eiffel, so you cannot actually test for an infinite loop.

You could try putting an int counter in the loop, incrementing it each repetition, and if it goes negative call a break statement (or better, throw an Exception). That's as near as I can think of to test for an infinite loop.
 
Bill Shirley
Ranch Hand
Posts: 457
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
In general it's not solvable.
In practicality, you'd have to have control over the JVM.
Heuristically, it's a difficult problem where you'll have to weigh your false positives v. your false negatives - you're going to get some.
 
Consider Paul's rocket mass heater.
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic