| ' Licensed under the Apache License, Version 2.0 (the "License"); |
| ' you may not use this file except in compliance with the License. |
| ' You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 |
| ' Unless required by applicable law or agreed to in writing, software distributed under the License is distributed |
| ' on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| ' See the License for the specific language governing permissions and limitations under the License. |
| |
| @startuml |
| |
| start |
| |
| if (dead space) then (too much) |
| :coalesce; |
| endif |
| |
| repeat |
| if (writeable heap?) then (false) |
| :create writeable heap; |
| endif |
| if (can allocate) then (true) |
| stop |
| endif |
| if (demote_heap) then (no open slots) |
| :coalesce; |
| endif |
| repeat while(loop) |
| detach |
| |
| @enduml |