Memory Management

The P.I.P.S. System Call Adaptation Layer (SCAL) known as Backend uses its own private heap for storing objects in memory.

By using a private heap,

  • the SCAL retains complete control over usage of the heap

  • system wide resources are not allocated within the context of users' private and thread owned heaps

  • the SCAL is virtually out-of-memory protected; that is, if the client application exhausts its own heap, most P.I.P.S. APIs will continue to function correctly, for example, opening or closing file descriptors

  • there is no need for application EXE s to explicitly clean up memory used by the SCAL prior to thread or process termination (this would be necessary to prevent UHEAP macros from panicking). The explicit calling of cleanup APIs is especially unintuitive for open-source applications and it is not obvious when a native Symbian platform EXE is using a STDDLL.

The use of a private heap might not make P.I.P.S. very memory efficient but it makes it much more intuitive to the user and memory safe.

Limitations

During low memory conditions, your P.I.P.S. application may crash at launch with an STDLIBS-INIT panic. This indicates that the P.I.P.S. subsystem was unable to initialise its core components and cannot function. Hybrid applications may also encounter this panic, for the same reasons, when it invokes a P.I.P.S. API.