1 // Copyright 2013 The Go Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style
3 // license that can be found in the LICENSE file.
12 void ctor(void) __attribute__((constructor));
13 static void* thread(void*);
18 // occupy memory where Go runtime would normally map heap
19 mmap((void*)0x00c000000000, 64<<10, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_FIXED, -1, 0);
21 // allocate 4K every 10us
23 pthread_create(&t, 0, thread, 0);
31 mmap(0, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0);
48 // ensure that we can function normally
50 for i := 0; i < 1000; i++ {
51 time.Sleep(10 * time.Microsecond)
52 v = append(v, make([]byte, 64<<10))
55 fmt.Printf("ok\t%s\t%s\n", filepath.Base(os.Args[0]), time.Since(start).Round(time.Millisecond))