File: ISuspendibleRegisteredObject.cs

package info (click to toggle)
mono 6.14.1%2Bds2-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,282,732 kB
  • sloc: cs: 11,182,461; xml: 2,850,281; ansic: 699,123; cpp: 122,919; perl: 58,604; javascript: 30,841; asm: 21,845; makefile: 19,602; sh: 10,973; python: 4,772; pascal: 925; sql: 859; sed: 16; php: 1
file content (41 lines) | stat: -rw-r--r-- 2,251 bytes parent folder | download | duplicates (7)
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
//------------------------------------------------------------------------------
// <copyright file="ISuspendibleRegisteredObject.cs" company="Microsoft">
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// </copyright>                                                                
//------------------------------------------------------------------------------

namespace System.Web.Hosting {
    using System;
    using System.Security.Permissions;

    // If the application passes HostingEnvironment.RegisterObject
    // an object which also implements this interface, that object
    // will be subscribed to listening for suspend / resume notifications.
    public interface ISuspendibleRegisteredObject : IRegisteredObject {

        // Called when ASP.NET needs to notify the application that the process is
        // being suspended. This method *must not* throw, otherwise the behavior is
        // undefined (we will probably terminate the process). This method *should
        // not* block, as after 5 seconds ASP.NET will allow rude process
        // suspension, even if not all Suspend methods have run to completion.
        //
        // If a callback is returned, it will be invoked when the process resumes
        // from suspension. The Suspend method may return null if it does not
        // wish to be notified when the process resumes.
        //
        // The Suspend method is currently only supported when running in
        // the IIS integrated mode pipeline. The ASP.NET runtime does not guarantee
        // that the Suspend method will ever fire.
        //
        // * THREAD SAFETY NOTE *
        // The Suspend method can be called at any time, including while a call
        // to another method (like IRegisteredObject.Stop) on this same object is
        // taking place, while calls to other objects' Suspend methods are taking
        // place, or even while a call to this object's Suspend method is taking
        // place. Additionally, due to the multithreaded nature of execution,
        // there exists a window in which the Suspend method might be called even
        // after a call to HostingEnvironment.UnregisterObject has completed.
        Action Suspend();

    }
}