• 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
Marshal
Posts: 53180
124
  • 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.
 
Gravity is a harsh mistress. But this tiny ad is pretty easy to deal with:
the new thread boost feature: great for the advertiser and smooth for the coderanch user
https://coderanch.com/t/674455/Thread-Boost-feature
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!